oym*_*oym 25 php error-handling codeigniter
在codeigniter中,如您所知,表单的页面:/class/function/ID
,其中class是控制器名称,function是控制器中的方法,ID是传递给该方法的参数.
典型的用法是(例如对于书籍网站)将书籍ID传递给函数,该函数然后将查询数据库以获得适当的书籍.我的问题是:我正在乱搞并且随机(在url字符串中)键入数据库中不存在的ID(通常点和点击浏览这种情况永远不会发生)并且由于剩余查询而导致数据库错误我尝试使用不存在的ID执行.
我已经编写了代码来检查在尝试使用ID之前是否有任何行返回,但如果ID不存在,我希望用户获得404错误页面而不是空白页面(因为这看起来像适当的功能).这需要是一个真正的404页面(不只是加载看起来像404页面的视图),以免搞砸搜索引擎.好的 - 所以我的问题是:在正常的程序逻辑流程中(如上所述)如何使用codeigniter强制404错误?谢谢.
更新:代码点火器有一个show_404('page')
功能,但我认为这不会产生真正的HTTP 404错误...
And*_*ore 51
show_404()
实际上为搜索引擎发送了正确的标题,将其注册为404页面(它发送404状态).
使用Firefox插件检查呼叫时收到的标头show_404()
.您将看到它发送正确的HTTP状态代码.
检查默认值application/errors/error_404.php
.第一行是:
<?php header("HTTP/1.1 404 Not Found"); ?>
Run Code Online (Sandbox Code Playgroud)
该行将HTTP状态设置为404.这是搜索引擎将您的页面作为404页面读取所需的全部内容.
如果你想要一个自定义错误页面,你可以做以下事情.在你的库中创建一个文件名MY_Exceptions并用CI_Exceptions扩展它.然后覆盖show_404()函数.在这个函数中你现在可以创建一个Controller类的实例使用&get_instance()函数.使用此实例,您可以加载自定义404错误页面.
class MY_Exceptions extends CI_Exceptions {
public function __construct(){
parent::__construct();
}
function show_404($page = ''){ // error page logic
header("HTTP/1.1 404 Not Found");
$heading = "404 Page Not Found";
$message = "The page you requested was not found ";
$CI =& get_instance();
$CI->load->view('/*Name of you custom 404 error page.*/');
}
Run Code Online (Sandbox Code Playgroud)
小智 7
只需遵循以下步骤:
步骤1 更新application/config/routes.php文件
$route['404_override'] = 'error/error_404';
Run Code Online (Sandbox Code Playgroud)
步骤2 在控制器文件夹ex中创建自己的控制器.error.php
<?php
class Error extends CI_Controller
{
function error_404()
{
$data["heading"] = "404 Page Not Found";
$data["message"] = "The page you requested was not found ";
$this->load->view('error',$data);
}
}
?>
Run Code Online (Sandbox Code Playgroud)
步骤3 在视图文件夹中创建视图.error.php
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" />
<title><?php echo $heading;?></title>
</head>
<body>
<?php echo $message;?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36214 次 |
最近记录: |