переменная не установлена ​​и вопрос об ошибке отправки формы - PullRequest
0 голосов
/ 17 августа 2010

Возникли небольшие проблемы с этим разделом кода:

if(!empty($_POST['RemoveRequest']) && isset($_POST['RemoveRequest'])){ $action = $_POST['RemoveRequest']; }
echo '<form method="post" action="'.$page_name.'">
<input type="submit" value="[Remove Request]" name="RemoveRequest" /></form></td>'
.'</tr></table>';

if($action == 'RemoveRequest'){

$sql = "DELETE FROM ".TBL_FACTION_REQUESTS." WHERE r_id=$id LIMIT 1";
mysql_query($sql);
header("Location: ".$page_name."");

}

Эта форма и код сервера выдают эту ошибку:

Примечание: неопределенная переменная: действие в C: \ xampp .. в строке 97.

Тогда запись не удаляется из моей БД.

Я действительно запутался в том, что я делаю здесь неправильно? Попробовал немного отладить себя, но пока не повезло. Надеюсь, кто-то может мне помочь!

Ответы [ 3 ]

1 голос
/ 17 августа 2010

Похоже, ваше условие открытия не соответствует истине -

if(!empty($_POST['RemoveRequest']) && isset($_POST['RemoveRequest']))

Если это утверждение не оценивается как true, $action не устанавливается. Предупреждение, которое вы видите («Неопределенная переменная ..») означает, что в первый раз $action встречается в вышеупомянутом потоке сценария, для которого не было установлено значение

// action hasn't been set by here..
if($action == 'RemoveRequest'){

Если $action не установлен, то, очевидно, он не оценивается как RemoveRequest, поэтому блок кода с вашим запросом базы данных никогда не будет работать.

При отладке попробуйте распечатать значения $action и $_POST['RemoveRequest'] во второй строке вашего кода. Может случиться так, что переменные не будут установлены так, как вы ожидаете с помощью формы, которая публикуется в этом скрипте.

0 голосов
/ 17 августа 2010

ошибка уровня E_NOTICE. Нужно добавьте этот код перед кодом:

 $action = "";
0 голосов
/ 17 августа 2010

Вы пробовали обернуть команду if следующим образом:

if( !(empty($_POST['RemoveRequest'])) && (isset($_POST['RemoveRequest'])) ){ 
   $action = $_POST['RemoveRequest']; 
}

Это единственное, что помешает вашей переменной не определиться.Кроме того, вы можете изменить value="[Remove Request]", потому что оно никогда не будет иметь значение true для if ($action =='RemoveRequest')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...