我目前正在一個小型私人網站上工作。我試圖讓它可以編輯數據庫中的用戶詳細信息。我的第一頁顯示所有用戶和詳細信息,每個用戶在他們名字旁邊都有編輯,然後第二頁打開一個表單輸入數據庫的新數據。問題是它不會更新數據庫。我不認爲表單是通過正確地將信息拖到編輯頁面。編輯會員表格未更新數據庫
也知道sql注入問題,但我會在初始問題修復後對它們進行排序。
TL; DR - 編輯成員表單不更新數據庫。我如何解決它?
此頁面從管理員的dastabase中拉取成員以選擇他想編輯的人員。 Edit.php:
<html>
<head>
<title>Choose User To Edit</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table>
<tr>
<td align="center">EDIT DATA</td>
</tr>
<tr>
<td>
<table border="1">
<?
include"conn.php";//database connection
$order = "SELECT * FROM members";
$result = mysql_query($order);
while ($row=mysql_fetch_array($result)){
echo ("<tr><td><a href=\"edit_form.php?id=$row[member_id]\">Edit</a></td>");
echo ("<td>$row[firstname]</td>");
echo ("<td>$row[lastname]</td>");
echo ("<td>$row[member_id]</td>");
echo ("<td>$row[login]</td>");
echo ("<td>$row[addline1]</td>");
echo ("<td>$row[addline2]</td>");
echo ("<td>$row[town]</td>");
echo ("<td>$row[county]</td>");
echo ("<td>$row[postcode]</td>");
echo ("<td>$row[telenum]</td>");
echo ("<td>$row[email]</td></tr>");
}
?>
</table>
</td>
</tr>
</table>
</body>
</html>
這是一個在admin按下編輯後出現的窗體。它應該將用戶數據拖入要編輯的文本區域。但它並沒有通過數據。這可能是問題開始的地方。
編輯form.php的:
<html>
<head>
<title>Edit Client</title>
</head>
<body>
<table border=1>
<tr>
<td align=center>Edit The Clients Data</td>
</tr>
<tr>
<td>
<table>
<?
include "conn.php";//database connection
$order = "SELECT * FROM members
where member_id='$id'";
$result = mysql_query($order);
$row = mysql_fetch_array($result);
?>
<form method="post" action="edit_data.php">
<input type="hidden" name="id" value="<? echo "$row[member_id]"?>">
<tr>
<td>First Name</td>
<td>
<input type="text" name="firstname"
size="40" value="<? echo "$row[firstname]"?>">
</td>
</tr>
<td>Last Name</td>
<td>
<input type="text" name="lastname"
size="40" value="<? echo "$row[lastname]"?>">
</td>
</tr>
<td>Login</td>
<td>
<input type="text" name="login"
size="40" value="<? echo "$row[login]"?>">
</td>
</tr>
<td>Add Line 1</td>
<td>
<input type="text" name="addline1"
size="40" value="<? echo "$row[addline1]"?>">
</td>
</tr>
<td>Add Line 2</td>
<td>
<input type="text" name="addline2"
size="40" value="<? echo "$row[addline2]"?>">
</td>
</tr>
<td>Town</td>
<td>
<input type="text" name="town"
size="40" value="<? echo "$row[town]"?>">
</td>
</tr>
<td>County</td>
<td>
<input type="text" name="county"
size="40" value="<? echo "$row[county]"?>">
</td>
</tr>
<td>Postcode</td>
<td>
<input type="text" name="postcode"
size="40" value="<? echo "$row[postcode]"?>">
</td>
</tr>
<td>telephone number</td>
<td>
<input type="text" name="telenum"
size="40" value="<? echo "$row[telenum]"?>">
</td>
</tr>
<tr>
<td>Email</td>
<td>
<input type="text" name="email" size="40"
value="<? echo "$row[email]"?>">
</td>
</tr>
<tr>
<td align="right">
<input type="submit"
name="submit value" value="Edit">
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</body>
</html>
最後的EXEC頁面,最好使用編輯在上面的表單中輸入的數據成員的信息。 編輯exec.php:
<?
//edit_data.php
include "conn.php";
$id = $_GET["member_id"];
$order = "UPDATE members
SET firstname='$_POST[firstname]',
lastname='$_POST[lastname]',
login='$_POST[login]',
addline1='$_POST[addline1]',
addline2='$_POST[addline2]',
town='$_POST[town]',
county='$_POST[county]',
postcode='$_POST[postcode]',
telenum='$_POST[telenum]',
email='$_POST[email]'
WHERE
member_id='$id'";
mysql_query($order);
header("location:edit.php");
?>
因此理想情況下,我想編輯的形式顯示在前面的頁面上選擇的信息,然後更新所做的任何更改。
任何幫助?
感謝您閱讀
謝謝你,會解決這個問題第2次故障,而第一個錯誤只是我的錯,而帖子的主題:P – GaZzErZz