所以我遇到問題。我(可能)知道問題是什麼,但我不知道如何解決它。重新加載頁面後發生變化
我有一個論壇,有問題和意見。現在發佈問題/評論的人的用戶名是他/她的個人資料的鏈接。當我到達該鏈接時,我檢查用戶名是否是我的用戶名。如果是我可以用按鈕編輯配置文件。現在當我點擊按鈕時,我收到錯誤,我會解釋我爲什麼這麼認爲。首先,我會告訴你我的代碼。這是我的個人資料頁面的頂部:
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);
上profilepage按鈕重新加載頁面(及以上),以使其通過這個代碼再次,但的$_GET['thread_username']
和$_GET['comment_username']
是從以前的頁面。所以當我重新加載時,它們不存在(所以它們是空的),並且頁面通過else。我已經測試過是否通過給$ profileusername一個變量來實現其他功能。所以當它通過else時,$profileusername
沒有被聲明,所以我得到各種錯誤。我的問題是,當頁面重新加載時,它不應該通過其他。它應該只檢查$ _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;
你重新加載完全相同的URI嗎?如果是,$ _GET仍然應該填充相同的值。或者你通過POST提交表單? $ _GET不可能再設置,你必須切換到$ _POST – Reeno
而不是使用'!empty($ variable)',使用'isset($ variable)' – Luke
@Reeno我通過POST提交。你是什麼意思:「$ _GET不可能再設置,你必須切換到$ _POST」我怎麼才能切換到$ _POST突然? – Loko