将标准传递给PHP

时间:2011-11-05 16:39:03

标签: php sql url header get

我正在创建一个用户可以创建帐户然后登录的网站。登录后,用户应该能够更改他们注册的信息。

当用户登录其用户名时,将通过以下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(?)中提取用户名时我犯了一些错误。如果有人可以请我推动正确的方向,这将是惊人的。感谢。

2 个答案:

答案 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");
代替。