Как вы показываете 404, когда есть дополнительные сегменты URL в CodeIgniter?

По сути, у меня есть сайт CodeIgniter, который регистрирует пользователей по этому URL:
http://website.com/user/register/1

К сожалению, когда вы передаете дополнительные аргументы в URL, как это: http://website.com/user/register/1/extraargs/extraargs

Вот мой код:

<?php
class User extends CI_Controller
{
    public function register($step = NULL)
    {
        if (($step!=NULL)&&($step == 1 || $step == 2 || $step == 3)) {
            if ($step == 1){
                $this->load->view('registration_step1');
            }
        } else {
            show_404();
        }
    }
}
?>

Он не показывает 404. Он просто игнорирует дополнительные аргументы. Я хочу, чтобы дополнительные аргументы не влияли на URL. Я хочу показать 404, если есть дополнительные аргументы URL. Как ты это делаешь? Кроме того, могут ли дополнительные сегменты URL влиять на безопасность? Благодарю.

1 ответ

Решение

Не знаю, почему вы хотите сделать это на самом деле, но вы могли бы использовать func_num_args() и подтвердить это, т. е.

public function register($step = NULL)
{
  if ( func_num_args() > 1 ) show_404();
}
Другие вопросы по тегам