簡體   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