2016-01-23 150 views
0

我的php代码更新代码不起作用。没有错误消息不更新。下面是代码: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,所以我不担心任何安全问题,但我想要的只是帮助如何让此代码正常工作。 谢谢!

+0

你的代码中有很多错误。你需要在这里检查错误,而你没有这样做。 –

+0

在打开PHP标记后立即将错误报告添加到文件顶部_while testing_,例如'<?php error_reporting(E_ALL); ini_set('display_errors',1);'看看它是否产生任何东西。 – RiggsFolly

回答

0

在你的代码中没有<form>

定义的方法,您正在使用$_POST超级全球对获取的值。所以你的形式方法必须进行后像:

<form method="post"> 

更新1

正如我的另一位朋友弗雷德-II建议请确保您使用的session_start()在其他文件藏汉你需要的特别是在这个文件中,你将用户重定向从$_SESSION信息

UpdateAccount.php 

最重要问题:

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

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

  • 多了一个问题,由@标识弗雷德-II删除此行

    密码= '{$ UpdatePassword}',

附注期末逗号:

始终在发展方面激活你的error_reporting而不是生产。你会得到所有的错误并节省你的时间。

+0

还有其他一些你错过的事情(一个是语法错误),另外我们不知道OP是否在第二个文件中启动会话。 –

+0

@ fred-ii嗨朋友。是的,你永远是对的。我的错。尝试更新一些东西。 – devpro

+1

'Password ='{$ UpdatePassword}','<<<尾随逗号;-) –