[英]php UPDATE doesn't work
我的PHP代码更新代码无法正常工作。 没有错误消息,它不会更新。 这是代码:
<?php require 'connections/connections.php'; ?>
<?php
session_start();
if(isset($_SESSION["UserIdent"])){
}else{
header('Location: login.php');
}
?>
<?php
$User = $_SESSION["UserIdent"];
$result = $con->query("select * from user where UserID='$User'");
$row = $result->fetch_array(MYSQLI_BOTH);
$_SESSION["FirstName"] = $row['Fname'];
$_SESSION["LastName"] = $row['Lname'];
$_SESSION["Username"] = $row['Username'];
$_SESSION["Email"] = $row['Email'];
$_SESSION["Password"] = $row['Password'];
?>
<?php
if(isset($_POST['UpdateUser'])){
$UpdateFname = $_POST['FirstName'];
$UpdateLname = $_POST['LastName'];
$UpdateUsername = $_POST['Username'];
$UpdateEmail = $_POST['Email'];
$UpdatePassword = $_POST['Password'];
$sql = $con->query("UPDATE user SET Fname = '{$UpdateFname}',
Lname = '{$UpdateLname}',
Email = '{$UpdateEmail}',
Username = '{$UpdateUsername}',
Password = '{$UpdatePassword}',
where UserID= $User");
header('Location: UpdateAccount.php');
}
?>
HTML代码在这里:
<!doctype html>
<html>
<head>
<link href="css/Master.css" rel="stylesheet" type="text/css">
<link href="css/Menu.css" rel="stylesheet" type="text/css">
<meta charset="utf-8">
<title>UpdateAccount</title>
</head>
<body>
<div id="holder">
<div id="header"></div>
<div id="NavBar">
<nav>
<ul>
<li><a href="account.php">Account</a></li>
<li><a href="Logout.php">Logout</a></li>
</ul>
</nav>
</div>
<div id="Content"></div>
<div id="ContentLeft"></div>
<div id="ContentRight"><form> <h6>
<label for="FirstName">First Name:<br>
</label>
<input name="FirstName" type="text" required="required"
class="StyleTxtField" id="FirstName" value="<?php echo
$_SESSION["FirstName"]; ?>">
</h6>
<h6>
<label for="LastName">Last Name:<br>
</label>
<input name="LastName" type="text" required="required" class="StyleTxtField"
id="LastName" value="<?php echo $_SESSION["LastName"]; ?>">
</h6>
<h6>
<label for="Username">Username:<br>
</label>
<input name="Username" type="text" class="StyleTxtField" id="Username"
value="<?php echo $_SESSION["Username"]; ?>">
</h6>
<h6>
<label for="Email">Email:<br>
</label>
<input name="Email" type="text" required="required" class="StyleTxtField"
id="Email" value="<?php echo $_SESSION["Email"]; ?>">
</h6>
<h6>
<label for="Password">Password:<br>
</label>
<input name="Password" type="password" class="StyleTxtField" id="Password"
value="<?php echo $_SESSION["Password"]; ?>">
</h6>
<p>
<input name="UpdateUser" type="submit" class="StyleTxtField" id="UpdateUser"
value="UpdateUser">
</p>
</form></div>
<div id="Footer"></div>
</body>
</html>
问题是我不知道为什么它没有更新...任何帮助,我将不胜感激。 没有错误,所以它应该可以正常运行,但是不能。我只是学习Mysqli,所以我不担心的任何安全问题,我想要的只是如何使此代码起作用的帮助。 谢谢!
您的代码中没有在<form>
定义的方法
您正在使用$_POST
super global来获取值。 因此,您的form方法必须像这样发布:
<form method="post">
更新1
正如我的另一个朋友Fred-ii建议的那样,请确保您在其他文件中也使用了session_start()
在其中您需要$_SESSION
的信息,特别是在该文件中,您将用户重定向
UpdateAccount.php
最重要的问题:
为什么在会话中保存密码? 而且,如果其简单的文本没有其他功能,则没有任何加密功能。 您需要以加密格式保存密码。
您需要防止代码被SQL注入。
@ fred-ii标识的另一个问题从此行中删除结尾的逗号
密码='{$ UpdatePassword}',
边注:
始终在开发方面而不是生产方面激活您的error_reporting
。 您将得到所有错误并节省您的时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.