如果未提供 URL 中的参数,则 codeigniter 显示警告错误

Posted

技术标签:

【中文标题】如果未提供 URL 中的参数,则 codeigniter 显示警告错误【英文标题】:codeigniter display warning error if argument in URL not provided 【发布时间】:2011-04-05 14:05:57 【问题描述】:

如果我没有在 URL 中提供 Codeigniter 的值,它会显示遇到 php 错误,说它缺少函数调用的参数。我根本不希望它显示。如果 URL 中没有参数,它应该只是重新路由到它的 index 函数。我该如何防止这种情况发生?

例如,www.example.com/profile/id/45

任何人都会像这样“www.example.com/profile/id”猜测并输入

这会产生错误。我该如何防止呢?我尝试了“if (!isset($id))”,但它在达到该条件之前产生了错误。

【问题讨论】:

【参考方案1】:

刚刚知道解决方法很简单:

function id($id=NULL)

 if ($id===NULL)
 
  redirect....
 


【讨论】:

【参考方案2】:

你也可以使用:

$this->uri->segment(2); // gets 'id'
$this->uri->segment(3); // gets '45'

然后做一个重定向,检查:

http://codeigniter.com/user_guide/helpers/url_helper.html

【讨论】:

【参考方案3】:

为你的函数使用默认值

function id($id=0)
   if(there any record with $id being provided)
        //do something
else
       //id not provided,set to default values 0 and then
   show_404();
 


不可能有 id = 0 所以它会自动显示错误而无需重定向,如果用户输入网址 www.example.com/profile/id ,

【讨论】:

以上是关于如果未提供 URL 中的参数,则 codeigniter 显示警告错误的主要内容,如果未能解决你的问题,请参考以下文章

如果在创建文档时未提供值,则数组中的子文档将保存为空数组项

在未登录浏览器连接 Instagram 时,OAuth Instagram API 删除重定向 URL 中的参数

网站微信静默授权流程

AWS API Gateway:如果响应未授权,则添加标头

node中的url常用方法解析

为啥应用程序组件中的服务注入导致 URL 参数未定义?