【问题标题】:How do you show a 404 when there are extra URL segments in CodeIgniter?当 CodeIgniter 中有额外的 URL 段时,如何显示 404?
【发布时间】:2012-05-10 21:34:30
【问题描述】:

基本上,我有一个 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。如果有额外的 URL 参数,我想显示 404。你怎么做到这一点?另外,额外的 URL 段会影响安全性吗?谢谢。

【问题讨论】:

  • 它不会影响安全性,因为会传递额外的值,您的系统根本不会使用这些值。
  • 哦,好吧。感谢您的提示。

标签: php codeigniter url arguments segments


【解决方案1】:

不确定您为什么要这样做,但您可以使用 func_num_args() 并从中验证,即,

public function register($step = NULL)
{
  if ( func_num_args() > 1 ) show_404();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 2023-03-03
    • 2012-08-07
    • 2014-10-24
    相关资源
    最近更新 更多