Привет, ребята, у меня возникла небольшая проблема, когда мои ошибки не показывались в моей форме. Это код Im работает в прямом эфире (просто проверяя его на моем хостинговом сайте), и он ничего не показывает, когда я помещаю вещи в тестовое поле. Любая идея относительно того, что может быть неправильным?
<?php
if ($_POST['submit']) {
if (!$_POST['email']) $error.="Please enter your email!";
else if !(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) $error.="Uh Uh uh, you didn't enter a valid email address!";
if (!$_POST['password']) $error.="Please enter a password!";
else {
if (strlen($_POST['password'])<8) $error.="Please enter a password of at least 8 characters.";
if (!preg_match(''[A-Z]'',$_POST['password'])) $error.="Please include at least one capital letter in your password."
}
if ($error) echo "There were error(s) in your sign up details:".$error;
}
?>
<form method="post">
<input type ="email" name="email" id="email" />
<input type ="password" name="password" />
<input type ="submit" name="submit" value ="Click for Cookies" />
</form>
Я собираюсь повторить то, что @Casmir сказал в комментариях об использовании isset, но попробовали ли вы представить что-то неправильное, а затем просто просмотрели источник страницы? Когда вы это сделаете, есть ли там текст?
Если это не так, то ваши тестовые условия и возможные условные искажения ошибки неверны, попробуйте использовать isset для переменной $ error.
Еще одна вещь, вы сказали, что это на сайте хостинга, убедитесь, что у вас есть display_error, установленный в On через локальный файл php.ini (или, тем не менее, ваш хост поддерживает настраиваемые значения конфигурации PHP), чтобы убедиться, что ошибки кода не предотвращают выполнение от завершения либо того, которое будет скрыто с помощью настроек "уровня производства" (также удалите их, когда закончите тестирование, конечно!).
Ваше условие неверно, поскольку вы проверяете ! $ _ POST [email], потому что вы получите его каждый раз, когда все, что вам нужно, это проверить на is_empty ($ _ POST [email]), если это вы можете эхо "не пуст", или что-то, и если не пусто, вы можете поместить регулярное выражение для проверки действительного идентификатора электронной почты.
if ($_POST['thing'])
но используйтеisset
, пример:if (isset($_POST['thing']))
и проверяйте значение после if необходимо.