繁体   English   中英

页眉中找不到页面错误

[英]page not found error in header

以下基本代码按预期工作。

<?php
mysql_connect("localhost", "user", "user@123") or die(mysql_error());
echo "Connected to MySQL<br />";
?>

我需要的是代替mysql_error,应返回未找到页面404错误。 我正在寻找最短的代码,因为这将用作负载均衡器检查。

以下似乎无效。 我得到空白页。

mysql_connect("localhost", "user", "user@123") or die(header("HTTP/1.0 404 Not Found"));

如果连接不成功, mysql_connect将返回一个假值。

$connected = mysql_connect("localhost", "user", "user@123");
if (!$connected){
  header("HTTP/1.0 404 Not Found");
}

不确定使用此代码的目的是什么-但无法连接到数据库并不一定表示未找到请求的页面-sql服务器也可能有问题。


附带说明-避免使用过时的mysql_ *函数。 强烈建议不要将它们用于新代码。 有更多现代替代方案可供使用,并且维护得更好。 考虑改用预备语句,并使用PDO或MySQLi 严格使用时,它们避免了繁琐且手动的转义部分,从而使堆积更容易,并且副产品更安全使用。 请参阅PDO教程以开始。

使用mysqli或PDO,mysql_ *将被贬值

$link =mysql_connect("localhost", "user", "user@123");
if (!$link) {
    header("error.php");
}
echo 'Connected successfully';

我将执行以下操作:请记住,我不建议使用mysqli,强烈建议不要使用mysql_ *。

$mysqli = new mysqli('localhost', 'user', 'password', 'dbname');

if ($mysqli->connect_error) {
    header("HTTP/1.0 404 Not Found");
} else {

}

您是否确定要返回404,但是这会误导您的资源,因此我将返回500错误作为服务器错误,这更合适。

有关HTTP状态代码的列表,请参见此处

我只是做一个if检查并返回500错误,因为如果Google在无法连接并返回404时试图查看索引页面,它将认为您的网站已损坏,您将失去排名和指向该页面的链接页。

500至少表明存在服务器问题,但是它将得到解决:

if(!mysql_connect('localhost', 'user', 'pass')){
    header('HTTP/1.1 500 Server error');
    exit();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM