我正在创建一个包含用户名,城市,国家等空白的个人资料页面。我已成功存储了用户名&使用UPDATE
查询在数据库中的城市。我根据用户的电子邮件设置了WHERE
条件。出于测试目的,我已经使用分隔电子邮件创建了2个帐户。当我从帐号#1登录时,输入了用户名& id,它已成功存储在正确的行中。然后我退出了,从帐号#2登录,用户名&我在帐号#1中输入的城市被复制并打印在帐号#2的空白处。但是在数据库中,数据仍然被区分,直到我按下ENTER。所以我的问题是,为什么会发生这种情况,我该如何解决这个问题?
这是action.php:
<?php
session_start(); //---> start session
ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$con = mysqli_connect('localhost', 'id1753243_venom', 'roushan123', 'id1753243_gameware_01');
if(!$con)
{
echo 'Not connected to the server';
}
$city = $_SESSION['city'];
$city = $_POST['city'];
if(isset($_POST['username']))
if(isset($_POST['city']))
{
$username = $_POST['username'];
$sql = "UPDATE users SET username='".mysqli_real_escape_string($con,$username)."', city = '$city' WHERE email='".mysqli_real_escape_string($con,$_SESSION['email'])."'";
$insert = mysqli_query($con,$sql);
$_SESSION['username'] = $username; //---> this will store username into session variable
$_SESSION['city'] = $city; //---> this will store city into session variable
}
if(!$insert)
{
echo 'Not inserted';
}
else
{
echo 'Inserted';
}
header("refresh:2; url=user.php");
?>
这是我的 HTML表单:
<form method="POST" action="action.php">
<div class="row">
<div class="col-md-3">
<div class="form-group">
<label>Username</label>
<input name="username" type="text" class="form-control" placeholder="Username" value="<?php echo $username; ?>">
</div>
</div>
</div>
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label>City</label>
<input type="text" name="city" class="form-control" placeholder="City" value="<?php echo $city; ?>">
</div>
</div>
<button type="submit" class="btn btn-info btn-fill pull-right">Update Profile</button>
<div class="clearfix"></div>
</form>
注意:我知道代码不安全,这仅用于测试目的。
注2:此复制仅适用于 City &amp; 用户名,其他空白,例如电子邮件,名字和&amp;姓氏工作正常。随意指出错误!提前谢谢!
答案 0 :(得分:0)
您正在将城市和用户名存储在SESSION变量中,请确保在注销时销毁与之前用户关联的会话。当您注销时,请确保...
~