在Edit.php页面上编辑后如何更新Index.php页面上的数据库值
Index.php页面 我是初学者。 这是一个索引页面,我在其中打印一个登录用户的名称,每当用户编辑其详细信息时,我都要更新用户名,我尝试更新它,它正在更新用户名,但当我编辑详细信息时,我必须先注销,然后再次登录,然后名称将更新。我想在用户编辑其详细信息并重定向到索引页面时立即更新名称,就像facebook一样。 我几乎花了一周的时间来解决这个问题。如果需要ajax,请给我一些代码。 多谢各位在Edit.php页面上编辑后如何更新Index.php页面上的数据库值,php,mysql,ajax,forms,mysqli,Php,Mysql,Ajax,Forms,Mysqli,Index.php页面 我是初学者。 这是一个索引页面,我在其中打印一个登录用户的名称,每当用户编辑其详细信息时,我都要更新用户名,我尝试更新它,它正在更新用户名,但当我编辑详细信息时,我必须先注销,然后再次登录,然后名称将更新。我想在用户编辑其详细信息并重定向到索引页面时立即更新名称,就像facebook一样。 我几乎花了一周的时间来解决这个问题。如果需要ajax,请给我一些代码。 多谢各位 <?php session_start(); require_once("inc/connect
<?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>
在这里注册
更新数据库时,您没有更改$\u会话中的值。
您必须手动执行此操作
// Add that under $_SESSION['msg'] = '....'
$_SESSION['usersession']['username'] = $name; // Same with email and password
请注意,您的代码容易受到mysql注入的攻击。你应该
此外,您甚至在输出
之前就显示了消息。请不要那样做。而是在html中的某个地方回显消息 您的编辑代码永远不会更新$\u会话,因此您将始终显示旧数据/原始数据。您还容易受到.thanx的攻击,请告诉我如何解决此问题,但我会在登录页面上处理sql\u注入。$\u会话['whatever']=$newvalue代码>基本上$\u会话['whatever']=$newvalue;//在哪个页面上以及如何应用这些代码,我完全是初学者。如果我在edit.php上这样做,那么如何在index.phpYour$\u会话变量在所有页面上共享(这就是会话的用途)。因此,如果您在edit.php中更改它,它将在调用index.php时更改,tooi这样做是因为您所说的是if($query){header(“Location:index.php”);}否则{echo“当前未更新,请稍后再试”}$\u会话['msg']=“您的详细信息已成功更新”$_会话['usersession']['name']=$name;}否则{echo“请输入您更新的密码”}那又怎么样??您无法在此位置设置标题,因为您已获得html输出。无论如何,你可以在使用header之前放置我的脚本行,你能帮我做一件事吗“我怎样才能使我的php强大(像专家一样)以及我怎样才能理解php中的oop”,oop也是一个让我头脑混乱的话题。