как остановить мою страницу php от продолжения, когда поле пусто - PullRequest
0 голосов
/ 05 мая 2011
<?php 
if(isset($_POST['submit'])){ 
echo "wht the heck"; 
$avail = new CheckEmptyFields(); 
$avail->availtime=$_POST['available_time']; 
echo $avail->chkFieldAvailableTime(); 
} 
else { 
print "<font color='red'>*</font>Printing else"; 
} 
?>

на моей странице, но когда я нажимаю продолжить, страница переходит на следующую страницу, пока поле пусто.

потому что я вижу "печать еще" на странице, даже если b4 я нажимаю продолжить, чтобы скрипт работалдо того момента, пока он не запустится, когда пользователь нажмет кнопку «Продолжить».

Ответы [ 3 ]

2 голосов
/ 05 мая 2011
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   if (isset($_POST['submit'])) {
      ... yada yada yada ...
   } else {
      echo '<font yada yada yada';
   }
}

При этом isset будет проверяться ТОЛЬКО в том случае, если страница была действительно запрошена с помощью нажатия POST. Если он загружен с помощью GET или любого другого метода, этот кусок кода просто не будет выполняться вообще.

0 голосов
/ 05 мая 2011

попробуйте заменить isset() на !empty(), это может произойти из-за того, что $_POST['submit'] установлено, но не имеет значения.empty() возвращает true для, как следует из названия, любого типа, который является пустым, см .: http://php.net/manual/en/function.empty.php

Таким образом, в основном isset() будет возвращать false, только если переменная не установлена ​​, но !empty() вернет false, даже если переменная установлена, но считается пустой (установлена ​​в FALSE, NULL, 0 и т. д.).Попробуйте.

0 голосов
/ 05 мая 2011

Оператор else выполняется, если $_POST['submit'] не установлено.При загрузке страницы (до того, как пользователь нажмет кнопку «Отправить»), это так.

Редактировать: Теперь, когда я думаю об этом, вы поместили их на разных страницах?Что такое атрибут action формы?

...