php UPDATE不起作用

时间:2016-01-23 20:27:05

标签: php html mysqli

我的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所以我不担心的任何安全问题,我想要的只是帮助如何让这些代码工作。 谢谢!

1 个答案:

答案 0 :(得分:0)

在您的代码中,<form>

中没有定义任何方法

您正在使用$_POST超级全局来获取值。所以你的表单方法必须像以下一样发布:

<form method="post">

更新1

正如我的另一位朋友 Fred-ii 建议,请确保您在其他文件中使用session_start(),以及您需要$_SESSION特别是此文件中的信息。重定向用户

UpdateAccount.php

最重要的问题:

  • 为什么要在会话中保存密码?如果它的简单文本没有任何加密功能比其他问题。您需要以加密格式保存密码。

  • 您需要阻止SQL注入代码。

  • @ fred-ii确定的另一个问题是删除此行中的结尾逗号

    密码='{$ UpdatePassword}',

旁注:

始终在开发方面激活您的error_reporting而非生产。您将获得所有错误并节省您的时间。