2015-12-16 1 views
0

Я подозреваю, что этот вопрос задан раньше, но у меня возникли проблемы с его формулировкой в ​​одном предложении, поэтому извиняйтесь, если это дубликат, но я просил Google довольно много, но получить ответы, совершенно не относящиеся к тому, что Я пытаюсь это выяснить.Посадка на php-файл из непреднамеренного источника

Немного контекста У меня есть куча html и php-файлов, которые имеют дело с аутентификацией. У меня есть форма login.html, которая вызывает home.php, которая (1) проверяет подлинность пользователя на основе имени пользователя и пароля, а затем (2) отображает главный экран. Таким образом, home.php имеет следующие переменные задания:

$username = $_POST[“username”]; 

$password = $_POST[“password”]; 

Проблема заключается в том, когда я использую другой файл «change_password.php», который вызывается из формы в В файле PHP «change_password.html.» , есть только три переменные: $ oldpword, $ newpword и $ newconfirmationpword, что все, что мне нужно, чтобы сменить пароль. И как только пароль будет успешно изменен, я ожидаю, что пользователь нажмет кнопку «home» (home.php).

Однако, когда выбрана кнопка home и файл home.php, я получаю сообщение об ошибке, указывающее, что переменная $ username и $ password не определены. Я подозреваю, что это связано с тем, что в форме, которая вызвала файл change_password.php, не было переменных $ username и $ password в их элементе <input>. Таким образом, при выполнении двух кодов назначения переменные $ _POST [] пусты (или не определены).

Есть ли способ обойти это? Моя конечная цель - избавиться от неопределенных ошибок.

ответ

0

$ _POST массив доступен везде, так как он является супер-глобальным. Вы можете получить доступ к этим значениям в любом месте. Просто убедитесь, что вы использовали session_start();

$username = $_POST[“username”]; 

$password = $_POST[“password”]; 

Задайте переменные перед использованием.

0

Я думаю, что лучше определить первую переменную. Вы можете попробовать:

$ username = $ _POST ["username"]? $ _POST ["username"]: '';

$ пароль = $ _POST ["password"]? $ _POST ["password"]: '';

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