在我提交表單并將資訊保存到資料庫后,我使用標頭函式重定向到更用戶友好的 url 但變數$checkError沒有保存,它在標頭重定向后被重置。即使頁面重繪 ,我如何保存變數?
if(isset($_GET['submit'])){
// get the post records <<
$id = '2';
$title = $_GET['title'];
$link = $_GET['link'];
// database connection
$con = mysqli_connect("localhost", "user", "password", "db_test");
$sql = "INSERT INTO test (id, title, link)
VALUES ($id, '$title', '$link')";
$rs = mysqli_query($con, $sql);
if($rs){
$checkError = '<div >Success!</div>';
}else{
$checkError = '<div >Not working!</div>';
}
mysqli_close($con);
//redirect to user friendly url
header("Location: /index.php?id={$id}");
}
uj5u.com熱心網友回復:
您可以將其寫入會話資料并稍后呼叫,作為一種潛在的解決方案。
在您的示例代碼塊中修改/添加:
session_start();
if($rs){
$_SESSION['checkData'] = '<div >Success!</div>';
}else{
$_SESSION['checkData'] = '<div >Not working!</div>';
}
header("Location: /index.php?id={$id}");
回到 index.php,你需要添加/修改:
session_start();
if( isset( $_SESSION['checkData'] ) ){ // check whether it's set
echo $_SESSION['checkData']; // output variable
unset( $_SESSION['checkData']; // reset variable
}
uj5u.com熱心網友回復:
您可以使用$GLOBALS或$_SESSION作為 $GLOBALS 的陣列更多詳細資訊單擊此處
您可以將其用作頭檔案中的以下代碼
在 $GLOBALS 中設定值
$GLOBALS['checkError'] = '<div >Success!</div>';
從 $GLOBALS 獲取價值
echo $GLOBALS['checkError'];
uj5u.com熱心網友回復:
您必須在重定向之前將資料存盤在 cookie 或會話中。Session 也用于存盤資料,但我建議您將資料存盤在 cookie 中,因為它將您的資料存盤在服務器上,并且會產生性能問題,而 cookie 存盤在客戶端。您可以檢查Cookie 和 Session 的主要區別
我添加了 cookie 示例(您可以在此處調整 cookie 的過期時間我已將過期時間設定為 1 天,并且根據您的代碼,我認為您只需在重定向頁面上閃爍您的訊息,然后您就可以將過期時間設定為 5 秒 - 10 秒)
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() (86400 * 30), "/"); // 86400 = 1 day
?>
在第二頁上,您可以訪問該 cookie
<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
我希望這對你有幫助。
uj5u.com熱心網友回復:
另一種非常容易實作的方法是跳過$checkError變數并將用戶重定向到特定頁面:
// ...
$rs = mysqli_query($con, $sql);
mysqli_close($con);
$page = $rs ? 'success' : 'failure';
header("Location: /{$page}.php?id={$id}");
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/394503.html
下一篇:docker-compose、WordPress和MariaDB、PHP致命錯誤:未捕獲的mysqli_sql_exception:連接被拒絕
