2016-01-23 152 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}','<<<尾隨逗號;-) –