0
我試圖在showName
div中顯示更新的值,但我的網站僅在註銷並重新登錄後纔會顯示更新值。PHP無法顯示更新的值
- 按
saveName
按鈕更新用戶名。 - 成功更新PHPMyAdmin
users
表中的用戶名。 showName
div仍顯示舊用戶名。即使我刷新頁面。
的index.php
<div id="showName">
<?php
if(isset($_SESSION['userId'])){
echo $_SESSION['username']; }
?>
</div>
<div id="message"></div>
<div> <input id="editName" name="editName" /> </div>
<button id="saveName" type="submit" >Save</button>
edit.php
<?php
ob_start();
session_start();
include_once('database.php');
$validUser= $_SESSION["username"];
if(isset($_POST['editName']))
{
$username = $_POST["editName"];
if ($username =="") {
echo "Enter your full name.";
return false;
}else {
$sql = "UPDATE users SET username='$username' WHERE username='$validUser'";
if(mysqli_query($con, $sql)){
echo "Successfully Updated.";
} else{
echo "Something went wrong"; }
}
return false;
}
ob_end_flush();
?>
的script.php
$("#saveName").click(function(e) {
e.preventDefault();
e.stopPropagation();
$.post("edit.php",
$("#editName").serializeArray(),
function(info){ $("#message").html(info);
});
});
** WARNING **:當使用'mysqli'你應該使用[參數化查詢(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值或連接來完成此操作,因爲您創建了嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 **絕不**將'$ _POST'或'$ _GET'數據直接放入查詢中,如果有人試圖利用您的錯誤,這會非常有害。 – tadman
提示:如果你從'$ _SESSION'拉取數據,那麼你必須更新它,如果你在數據庫中改變它。 – tadman
@tadman我實際上有一個爲'$ _POST'使用'trim()','stripslashes()'和'htmlspecialchars()'的函數。我想知道如何在更新數據庫的同時更新'$ _SESSION'? –