簡體   English   中英

PHP表單,用於更新MySQl數據庫以進行Ajax聊天

[英]PHP Form for updating a MySQl database for ajax chat

我正在為工作中的某些用戶使用開源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";
}

?>

在這里,您沒有從中獲取發布的值,我應該使用$_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“修復了我的腳本,我必須對所有字段都執行相同操作,但現在可以使用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM