用于为ajax聊天更新MySQl数据库的PHP表单
我正在使用一个开放源码的ajax聊天程序,用于一些上班族的群组聊天。 该程序运行良好,但它不是为用户修改密码而构建的 或者让我不用直接从数据库管理用户。所以我把这个PHP脚本放在一起。它能够显示数据库中的数据,但不会对其进行更新。我正在为MySQl和Apache服务器使用Xampp。我计划在安装并运行IIS后立即迁移到IIS。这是我桌子的布局用于为ajax聊天更新MySQl数据库的PHP表单,php,mysql,Php,Mysql,我正在使用一个开放源码的ajax聊天程序,用于一些上班族的群组聊天。 该程序运行良好,但它不是为用户修改密码而构建的 或者让我不用直接从数据库管理用户。所以我把这个PHP脚本放在一起。它能够显示数据库中的数据,但不会对其进行更新。我正在为MySQl和Apache服务器使用Xampp。我计划在安装并运行IIS后立即迁移到IIS。这是我桌子的布局 ID Username Password Role Channels EMail 为了节省时间,我只发布更新和更新脚本。 当使用Windows7作为
ID Username Password Role Channels EMail
为了节省时间,我只发布更新和更新脚本。
当使用Windows7作为我的服务器时,我在提交更新后得到未定义的变量。
它仍然说更新成功,但数据库没有更新。
在WindowsXP作为服务器时,我没有得到未定义的变量错误。
如果有人能给我一些关于我做错了什么的建议,或者给我指出另一个解决方案,我将不胜感激,谢谢
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";
}
?>
update.php
//获取从地址栏发送的id的值
$id=$_GET['id'];
//从数据库检索数据
$sql=“从$tbl\U名称中选择*,其中id='$id';
$result=mysql\u查询($sql);
$rows=mysql\u fetch\u数组($result);
?>
更新用户
用户名
密码
角色
频道
电子邮件
在这里,您不是从中获取发布的值,我应该使用$\u 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'];
我发现将name=“password”更改为name=“password”修复了我的脚本。
我必须对所有字段执行相同的操作,但它现在可以正常工作。您很容易受到攻击。停止使用此代码并学习如何防止攻击。我已经尝试了发布的值,但没有成功。至于SQl注入,因为这只会被我团队中的一些人用来更新用户,我并不担心。我是能够让脚本工作,我感谢所有的帮助。