получение значения true / false, возвращенного из флажка, ошибка, когда false - PullRequest
2 голосов
/ 30 мая 2011

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

У меня есть флажок с именем "htemail ", когда я отправляю его в скрипт, у меня есть этот код:

if(!$_POST['htemail']){
  $usehtml = 0;
}else{
  $usehtml = 1;
}

echo($usehtml);

, если флажок установлен, он возвращает 1, но если это не так, я получаю следующую ошибку:

Примечание: неопределенный индекс: htemail в C: \ wamp \ www \ mailing list \ createUser.php в строке 7 Вызов стека #TimeMemoryFunctionLocation 10.0004673576 {main} () .. \ createUser.php: 0 0.

Первое, что я подумал, это перевернуть код назад, чтобы он сначала проверял наличие проверки (я не уверен, почему я думал, что это поможет)

Спасибо зазаранее за любые ответы.

Ответы [ 2 ]

4 голосов
/ 30 мая 2011

Браузер может не включать в данные публикации, если они не отмечены. Используйте функцию isset, чтобы проверить это. Если не установлено, значит, не проверено, обратное не верно, если установлено, все равно может быть ложным.

if(isset($_POST['htemail']) && $_POST['htemail'] == "Value"){ //where "Value" is the
          //same string given in the HTML form, as value attribute the the checkbox input
  $usehtml = 1;
}else{
  $usehtml = 0;
}

В качестве альтернативы isset вы можете использовать array_key_exists

2 голосов
/ 30 мая 2011

То, что вы хотите, это обнаружить существование члена массива, а затем проверить его содержимое:

$usehtml = 0;

if (isset($_POST['htemail']) && strtolower($_POST['htemail']) == 'yes'){
    $usehtml = 1;
}

echo($usehtml);

isset() проверяет, чтобы убедиться, что член массива существует, и в этом случае вы можете проверить, чтобы убедиться, что значение соответствует требуемому значению.

Кроме того, выше я заказал для оценки значение по умолчанию (0), а затем изменил на другое значение, если присутствует другая переменная. На самом деле нет большой разницы между этим и оператором if / else, но я думаю, что читать и понимать проще.

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