所以我遇到了问题。我(可能)知道问题是什么,但我不知道如何解决它。
我有一个论坛,有问题和意见。现在发布问题/评论的人的用户名是他/她的个人资料的链接。当我到达该链接时,我检查人员用户名是否是我的用户名。如果是,我可以用按钮编辑配置文件。现在,当我点击按钮时,我会收到错误,并且我会解释为什么我这么认为。首先,我将向您展示我的代码。这是在我的个人资料页面之上:
if(!empty($_GET['thread_username'])){
//If thread username link was clicked
$profileusername = $_GET['thread_username'];
}
else if(!empty($_GET['comment_username'])){
//If comment username was clicked
$profileusername = $_GET['comment_username'];
}
else{
}
$profileusername=$mysqli2->real_escape_string($profileusername);
个人资料页面上的按钮会重新加载页面(以及更多内容),以便再次通过此代码,但 $_GET['thread_username']
和$_GET['comment_username']
来自上一页。因此,当我重新加载它时,它们不存在(因此它们是空的)并且页面通过else。我通过给$ profileusername一个变量来测试它是否通过else进行测试。因此,当它通过else时,$profileusername
没有被声明,所以我得到了所有类型的错误。我的问题是,当页面重新加载时,它不应该通过else。它应该只检查$ _GET,但该页面显示它不存在,我理解但是我该如何解决这个问题?
我现在的表格:
echo
<<<EOT
<form action="profile.php" method="post">
<input name="edit" type="submit" value="edit"></td>
<input type="hidden" name="thread_username" value="{$_REQUEST["thread_username"]}"/>
<input type="hidden" name="comment_username" value="{$_REQUEST["comment_username"]}" />
</form>
EOT;
答案 0 :(得分:2)
使用$ _REQUEST而不是$ _GET,请参阅问题的评论。