2013-10-08 93 views
0

所以我遇到問題。我(可能)知道問題是什麼,但我不知道如何解決它。重新加載頁面後發生變化

我有一個論壇,有問題和意見。現在發佈問題/評論的人的用戶名是他/她的個人資料的鏈接。當我到達該鏈接時,我檢查用戶名是否是我的用戶名。如果是我可以用按鈕編輯配置文件。現在當我點擊按鈕時,我收到錯誤,我會解釋我爲什麼這麼認爲。首先,我會告訴你我的代碼。這是我的個人資料頁面的頂部:

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; 
+0

你重新加載完全相同的URI嗎?如果是,$ _GET仍然應該填充相同的值。或者你通過POST提交表單? $ _GET不可能再設置,你必須切換到$ _POST – Reeno

+1

而不是使用'!empty($ variable)',使用'isset($ variable)' – Luke

+0

@Reeno我通過POST提交。你是什​​麼意思:「$ _GET不可能再設置,你必須切換到$ _POST」我怎麼才能切換到$ _POST突然? – Loko

回答

2

使用$ _REQUEST而不是$ _GET,看到評論的問題。

+0

現在唯一令人討厭的事情是,當我點擊上一頁的thread_username時,它顯示我未定義索引comment_username 而當我點擊comment_username時,它顯示我未定義索引thread_username – Loko

+0

添加''只有當變量設置爲:if(isset($ _REQUEST [」thread_username「])){echo''}'(和'comment_username'一樣) – Reeno

+0

非常感謝 – Loko

相關問題