0

我正在为一些工作中的用户使用开源 ajax 聊天程序进行群聊。该程序运行良好,但它不是为用户更改密码或让我在不直接从数据库中进行管理用户的方式构建的。所以我把这个PHP脚本放在一起。它能够显示数据库中的数据,但不会更新它。我将 Xampp 用于 MySQl 和 Apache 服务器。一旦我启动并运行它,我计划转移到 IIS。这是我的桌子的布局。

  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";
}

?>
4

2 回答 2

0

在这里,您没有从 from 获取发布的值,我应该用来$_POST获取发布的值。

// update data in mysql database
$sql = "UPDATE $tbl_name SET Username='$Username', Password='$Password', Role='$Role', 
Channels='$Channels', EMail='$EMail' WHERE id='$id'";

所以你必须得到发布的价值如下

$Username  = $_POST['Username'];
$Password  = $_POST['Password'];
$Role      = $_POST['Role'];
$Channels  = $_POST['Channels'];
$EMail     = $_POST['EMail'];
$id        = $_POST['id'];
于 2012-10-16T04:17:34.940 回答
0

我发现将 name="password" 更改为 name ="Password" 修复了我的脚本。我必须对所有字段执行相同的操作,但它现在可以工作了。

于 2012-10-17T20:31:15.633 回答