2013-10-08 7 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 i submit via POST. Что вы имеете в виду: «$ _GET, скорее всего, не установлен, и вам нужно перейти на $ _POST». Как я могу просто переключиться на $ _POST внезапно? – Loko

ответ

2

Использование $ _REQUEST вместо $ _GET, увидеть комментарии к этому вопросу.

+0

Единственная неприятная вещь сейчас, когда я нажимаю на thread_username на предыдущей странице, он показывает мне Undefined Index comment_username И когда я нажимаю на имя_комментария, оно показывает мне Undefined Index thread_username – Loko

+0

Добавьте '' только если переменная установлена: 'if (isset ($ _ REQUEST [" thread_username "])) {echo ''}' (и то же самое для 'comment_username') – Reeno

+0

Большое спасибо – Loko

Смежные вопросы