【发布时间】:2011-11-05 16:39:03
【问题描述】:
我正在创建一个网站,用户可以在其中创建一个帐户然后登录。登录后,用户应该能够更改他们注册的信息。
当用户登录时,他们的用户名会在如下 URL 中传递:
header("Location: loggedon.php?$username");
现在,在我的 loggedon.php 页面上,我添加了以下内容:
<?php
$username = $_GET["username"];
$query="SELECT * FROM customer WHERE username=['$username']";
$result = mysql_query ($query) or die ("error in query");
while ($row = mysql_fetch_array($result))
{
// Print one row of results
print "<tr>" .
"<td>" . $row["CustomerID"] . "</td>" .
"<td>" . $row["Firstnames"] . "</td>" .
"<td>" . $row["Surname"] . "</td>" .
"<td>" . $row["Username"] . "</td>" .
"<td>" . $row["Email"] . "</td>" .
"<td>" . $row["Password"] . "</td>" .
//print a change/delete link at the end of each row
"<td><a href=customerChangeDelete.php?id=".$row['CustomerID'].">Change/Delete</a></td>";
print "</tr>";
}
// Then, finish the table
print "</table>";
}
?>
当我运行页面并登录时,我收到以下错误:
注意:未定义索引:第 60 行 J:\xampp\htdocs\loggedon.php 中的用户名
查询错误
我想我在尝试从 URL (?) 中提取用户名时犯了某种错误。如果有人可以请给我一个正确的方向推动,这将是惊人的。谢谢。
【问题讨论】:
-
我不知道您的应用程序是什么样的,但也许您想考虑一些与安全相关的事情。 GET 和 POST 参数非常不安全,因为用户可以操纵它。有人可能会调用 loggedon.php?username=administrator 并看到他不应该看到的东西。也许您发布了一个简化的示例,但如果用户已登录,我看不到任何验证。