我正在创建一个用户可以创建帐户然后登录的网站。登录后,用户应该能够更改他们注册的信息。
当用户登录其用户名时,将通过以下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(?)中提取用户名时我犯了一些错误。如果有人可以请我推动正确的方向,这将是惊人的。感谢。
答案 0 :(得分:1)
为什么不试试mysql_real_escape_string?它会更安全。
另一方面,使用“Location:loggedon.php?$ username”,你会得到一个网址:
loggedon.php?约翰
但是,对于$ _GET,你应该得到一个网址:
loggedon.php?用户名=约翰
我建议你改变
header("Location: loggedon.php?$username");
使用:
header("Location: loggedon.php?username=".$username);
答案 1 :(得分:0)
您没有在标题重定向中为username-Parameter命名。使用
header("Location: loggedon.php?username=$username");
代替。