Php «ошибки» в регистрационной форме

1

Привет, ребята, у меня возникла небольшая проблема, когда мои ошибки не показывались в моей форме. Это код 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>
  • 0
    Есть много вещей, которые нужно сказать, но прежде всего сделайте отступ кода логическим способом (посмотрите рекомендации PSR, если у вас нет идей о том, как написать хорошо отформатированный код). Чтобы узнать, существует ли элемент массива или нет, пожалуйста, не пишите if ($_POST['thing']) но используйте isset , пример: if (isset($_POST['thing'])) и проверяйте значение после if необходимо.
Теги:

2 ответа

1
Лучший ответ

Я собираюсь повторить то, что @Casmir сказал в комментариях об использовании isset, но попробовали ли вы представить что-то неправильное, а затем просто просмотрели источник страницы? Когда вы это сделаете, есть ли там текст?

Если это не так, то ваши тестовые условия и возможные условные искажения ошибки неверны, попробуйте использовать isset для переменной $ error.

Еще одна вещь, вы сказали, что это на сайте хостинга, убедитесь, что у вас есть display_error, установленный в On через локальный файл php.ini (или, тем не менее, ваш хост поддерживает настраиваемые значения конфигурации PHP), чтобы убедиться, что ошибки кода не предотвращают выполнение от завершения либо того, которое будет скрыто с помощью настроек "уровня производства" (также удалите их, когда закончите тестирование, конечно!).

  • 0
    Я действительно ценю помощь, однако я обнаружил, что в коде не было ничего плохого с самого начала. Оказывается, мой хост (iPage) несмотря на то, что он показывает, что его php настроен правильно, не работает ни один из php-кода. Я поместил там даже самый простой код php, и он не работает. Так что большую часть недели я провел, пытаясь решить не ту проблему. Теперь я должен выяснить, что не так с моим хозяином. Еще раз спасибо!
0

Ваше условие неверно, поскольку вы проверяете ! $ _ POST [email], потому что вы получите его каждый раз, когда все, что вам нужно, это проверить на is_empty ($ _ POST [email]), если это вы можете эхо "не пуст", или что-то, и если не пусто, вы можете поместить регулярное выражение для проверки действительного идентификатора электронной почты.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню