그룹 채팅을 위해 직장에서 일부 사용자에게 오픈 소스 아약스 채팅 프로그램을 사용하고 있습니다. 프로그램은 제대로 작동하지만 사용자가 비밀번호 을 변경하거나 데이터베이스에서 직접하지 않고 사용자를 관리 할 수있는 방법으로 구축되지 않았습니다. 그래서이 PHP 스크립트를 조합했습니다. 데이터베이스의 데이터를 표시 할 수는 있지만 업데이트하지는 않습니다. MySQl과 Apache 서버에 Xampp을 사용하고 있습니다. 일단 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)에 취약합니다.이 코드 작업을 중단하고 공격을 방지하는 방법을 알아보십시오. –