我正在使用開放源碼的ajax聊天程序來處理羣聊中的某些用戶。 該程序工作正常,但它並沒有建立一種方式,讓用戶更改那裏的密碼 或我沒有直接從數據庫管理用戶。所以我把這個PHP腳本放在一起。它能夠顯示來自數據庫的數據,但不會更新它。我使用Xampp作爲MySQl和Apache服務器。我計劃在IIS啓動並運行後轉移到IIS。這是我的桌子的佈局。用於更新ajax聊天的MySQl數據庫的PHP表單
ID Username Password Role Channels EMail
爲了節省一些時間,我只會發布update和update_ac腳本。 當使用Windows 7作爲我的服務器時,我提交更新後得到未定義的變量。 它仍然表示更新成功,但數據庫未更新。 在Windows XP作爲服務器,我沒有得到未定義的變量錯誤。 如果有人可以請給我一些建議,我做錯了什麼或指向我在這裏的另一個解決方案,我將不勝感激。
update.php
// get value of id that sent from address bar
$id=$_GET['id'];
// Retrieve data from database
$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<table width="400" border="0" cellspacing="10" cellpadding="0">
<tr>
<form name="form1" method="post" action="update_ac.php">
<td>
<table width="100%" border="10" cellspacing="1" cellpadding="10">
<tr>
<td colspan="3"><strong>Update User</strong> </td>
</tr>
<center>
<tr>
<td align="center"><strong>Username</strong></td>
<td align="center"><strong>Password</strong></td>
<td align="center"><strong>Role</strong></td>
<td align="center"><strong>Channels</strong></td>
<td align="center"><strong>EMail</strong></td>
</tr>
</center>
<tr>
<td align="center">
<input name="username" type="text" id="Username" value="<?php echo
$rows['Username'];
?>" size="15">
</td>
<td align="center">
<input name="password" type="Password" id="Password" value="<?php echo
$rows['Password']; ?>" size="15">
</td>
<td>
<input name="role" type="text" id="Role" value="<?php echo $rows['Role']; ?>" size="1">
</td>
<td>
<input name="channels" type="text" id="Channels" value="<?php echo $rows['Channels'];
?>" size="10">
</td>
<td>
<input name="EMail" type="text" id="EMail" value="<?php echo $rows['EMail']; ?>"
size="25">
</td>
<tr>
<td>
<input name="id" type="hidden" id="ID" value="<?php echo $rows['ID']; ?>">
</td>
<td align="center">
<input type="submit" name="Submit" value="Submit">
</td>
</tr>
update_ac.php
// update data in mysql database
$sql = "UPDATE $tbl_name SET Username='$Username', Password='$Password', Role='$Role',
Channels='$Channels', EMail='$EMail' WHERE id='$id'";
$result = mysql_query($sql);
// if successfully updated.
if($result)
{
echo "Successful";
echo "<BR>";
echo "<a href='index.php'>View result</a>";
}
else
{
echo "ERROR";
}
?>
你很容易受到[SQL注入攻擊](http://bobby-tables.com)。停止處理這段代碼並學習如何防止這些攻擊 –