我試圖用一個名爲myinfo.php的小PHP腳本來顯示用戶信息。其中的相關部分如下所示:
while($return = mysql_fetch_assoc($result)) {
echo "<form action=UpdateInfo.php method=post>";
echo "<p id=greeting> Hi ".$return['FirstName'].", below is all of your personal information: </p>";
echo '<p> First Name: <input type="text" name="firstname" value= "'.$return['FirstName'].'"/></p>';
echo '<p> Surname: <input type="text" name="surname" value= "'.$return['Surname'].'" /></p>';
echo '<p> House Number: <input type="number" name="housenumber" value= "'.$return['HouseNumber'].'"/></p>';
echo '<p> Address Line One: <input type=text name="addressone" value= "'.$return['AddressLineOne'].'" /></p>';
echo '<p> Address Line Two: <input type=text name="addresstwo" value= "'.$return['AddressLineTwo'].'" /></p>';
echo '<p> County: <input type=text name="county" value= "'.$return['County'].'" /></p>';
echo '<p> Phone Number: <input type=number name="phonenumber" value= "' .$return['PhoneNumber'].'" /></p>';
echo '<p> Email: <input type=email name="email" value= "'.$return['Email'].'" /></p>';
echo '<p> Username: <input type=text name="username" value= "'.$return['Username'].'" /></p>';
echo '<p> Password: <input type=password name="password" value= "'.$return['Password'].'" /></p>';
echo '<p> User Type: <input type="text" name="usertype" value= "'.$return['UserType'].'" /></p>';
echo '<input id="submit" type="submit" value="Update Info" />';
echo "</form>";
}
的輸入都是預填充與用戶自己的信息,以便用戶可以編輯的輸入值,然後點擊「更新信息」提交按鈕,以更新他/她的信息。一旦這個按鈕被點擊的用戶被髮送到「updateinfo.php」頁面,他們必須確認信息的變化,並表示他們將要進行更改,如下圖所示:
echo '<p id="confirmation">Are you sure you wish to make the following changes to your personal information?</p>';
echo '<form action="CompleteUpdate.php" method="post">';
echo "<p>First Name: " . $_POST["firstname"] . "</p>";
echo "<p>Surname: " . $_POST["surname"] . "</p>";
echo "<p>House Number: " . $_POST["housenumber"] . "</p>";
echo "<p>Address Line One: " . $_POST["addressone"] . "</p>";
echo "<p>Address Line Two: " . $_POST["addresstwo"] . "</p>";
echo "<p>County: " . $_POST["county"] . "</p>";
echo "<p>Phone Number: " . $_POST["phonenumber"] . "</p>";
echo "<p>Email: " . $_POST["email"] . "</p>";
echo "<p>Username: " . $_POST["username"] . "</p>";
echo "<p>Password: " . $_POST["password"] . "</p>";
echo "<p>Usertype: " . $_POST["usertype"] . "</p>";
echo '<input id="submit" type="submit" value="Update Info" /></form>';
echo '<form action="CancelUpdate.php"><input id="submit" type="submit" value="Cancel" /></form>';
這裏用戶現在單擊「更新信息」按鈕或決定取消更新。如果點擊更新信息按鈕下面的PHP腳本調用:
$sql=("UPDATE completeinfo SET FirstName='$_POST[firstname]', Surname='$_POST[surname]', AddressLineOne='$_POST[addresslineone]', AddressLineTwo='$_POST[addresslinetwo]', County='$_POST[county]', Email='$_POST[email]', Username='$_POST[username]', Password=SHA1('$_POST[password]'), UserType='$_POST[usertype]' WHERE Username='".$_SESSION['username']."'");
我遇到的問題是,更新查詢,而不是用新的替換舊的值,由$ _ POST值表示,它現在讓他們完全空白。該查詢確切地知道在我的數據庫中編輯的位置,所以我必須假定「where」子句正在工作,但由於某些原因,$ _POST並未在查詢中獲取正確的值,即使它在以前的PHP腳本中工作得非常好。任何想法如何解決這個問題將不勝感激。由於
有關SQL注入的一些想法。 .. – Ray
只需使用一些輸入類型=「隱藏」來存儲值;) – Hackerman
讓我們說,我不會做任何「網上銀行」與此。 '$ this =「code」;' - ['Lovely'](http://stackoverflow.com/q/60174/) –