[英]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.