[英]How To Update Database Value On Index.php Page After Editting On Edit.php Page
Index.php頁面我是一個初學者。 這是索引頁面,在該頁面中,我打印登錄用戶的名稱,並且每當用戶編輯他的詳細信息時我都想更新用戶名,我嘗試更新它,它在更新用戶名,但是當我編輯詳細信息時,我先注銷了然后再次登錄然后名稱將更新。我想在用戶編輯自己的詳細信息並像Facebook一樣重定向到索引頁面時立即更新名稱。 我幾乎花了一個星期的時間來解決這個問題。如果需要使用Ajax,請給我代碼。 謝謝
<?php
session_start();
require_once("inc/connection.php");
if (empty($_SESSION['usersession'])) {
header("Location: login.php");
}
if (isset($_SESSION['msg'])) {
echo $_SESSION['msg'];
unset($_SESSION['msg']);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>WELCOME TO USER AREA</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="main">
<nav id="nav">
<div class="logout">
WELCOME <?php echo $_SESSION['usersession']['name']; ?> // echo name of user
<a href="logout.php">Log out</a>
</div>
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="register.php">Register</a></li>
<li><a href="edit.php">Edit</a></li>
<li><a href="delete.php">Delete(not recommended)</a></li>
</ul>
</nav>
<div class="para">
some text
</div>
</div>
</body>
</html>
Edit.php這是edit.php代碼
<?php
session_start();
if (empty($_SESSION['usersession'])) {
header("Location: login.php");
}
if (isset($_SESSION['msg'])) {
echo $_SESSION['msg'];
unset($_SESSION['msg']);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>REGISTER HERE</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div id="reg2">
<?php
if (isset($_POST['btn'])) {
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
$id = $_SESSION['usersession']['id'];
if (!empty($name && $email && $password)) {
if (!empty($password)) {
$password = sha1($password);
require_once("inc/connection.php");
$query = mysqli_query($conn, "UPDATE register SET name='$name',email='$email',password='$password' WHERE id='$id'");
if ($query) {
header("Location: index.php");
} else {
echo "not updated right now please try again later";
}
$_SESSION['msg'] = "Your detail has been updated successfully";
}
} else {
echo "please put your updated password";
}
}
?>
</div>
<div id="form">
<form method="post" action="edit.php">
<label>NAME</label><p>
<input class="int" type="text" class="nm" name="name" placeholder="Please Enter Your Name Here" value="<?php echo $_SESSION['usersession']['name']; ?>" /><p>
<label>EMAIL</label><p>
<input class="int" type="email" class="em" name="email" placeholder="Please Enter Your Email Here" value="<?php echo $_SESSION['usersession']['email']; ?>" /><p>
<label>PASSWORD</label><p>
<input class="int" type="password" name="password" placeholder="Please Enter Your new Password Here" />
<p></p>
<input type="hidden" name="id[]" value="<?php echo $_SESSION['usersession']['id']; ?>"/>
<input type="submit" name="btn" id="btu" value="Update">
</form>
</div>
</body>
</html>
更新數據庫時,您沒有更改$ _SESSION中的值。 您必須手動執行。
// Add that under $_SESSION['msg'] = '....'
$_SESSION['usersession']['username'] = $name; // Same with email and password
請注意,您的代碼容易受到mysql-injection的攻擊。 您應該使用mysql_real_escape_string來避免這種情況。
此外,您甚至在輸出<!DOCUMENT html>
之前顯示您的消息。 請不要那樣做。 而是在您的html中的某處回顯該消息!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.