<form method="post"> <input name="login" type="text"> <input name="submit" type="submit" class='btn' id="submit"></form> <?php if(empty ($_POST['login'])) {?> <script> window.onload = function() { swal("Password or Login incorrect!"); } </script> <?php } else {echo 'login correct';} ?> |
почти то что надо, огромное спасибо :thanks:
но сразу появляется проблема, как только я захожу на страницу, скрипт автоматом срабатывает(выскакивает окно), видимо поэтому и нужно было onclick = function(). Кажись тупиковая ситуация :( |
Нет
Ну "онклик" же явно говорит, что функция срабатывает на клик. А вам это не надо. Соответсвенно ваша ошибка в php. Вы проверяете пустой или нет $_POST['login'], а вам нужно проверить есть ли он вообще. if (isset($_POST['login']))..... и вы этом случае не выводить ни чего. В настоящий момент при этой ситуации php скрипт попадает в ваше условие заставляющее отобразить окно с ошибкой <?php if (isset($_POST['login'])) { if(empty ($_POST['login'])) {?> <script> window.onload = function() { swal("Password or Login incorrect!"); } </script> <?php } else { echo 'login correct'; } } ?> |
voral,
да, Вы совершенно правы, я по своей невнимательности, забыл сначала проверить на isset. Благодарю ещё раз, за столь быстрые и правильные ответы :thanks: В карму смог добавить только один плюсик, больше не получается, из-за того, что требуется ещё кому-нибудь поставить ( |
<input name="login" type="text" required> и фиг ты отправишь пустое поле, по крайней мере в современных браузерах)
Но это не отменяет необходимость серверной проверки. |
Так не делают, это уродство. Когда страница перезагружается то все сообщения валятся прямо в html, а когда страница не перезагружается, то все сообщения валятся в js-скрипт, который затем валит их в html.
В принципе можно и алерты втюхивать, onload тут вообще не при делах. Как только парсер дошел до алерта - показал. Потому что все уже решено до того как. |
Вот так сделайте, как людей:
В процессе валидации просто собираете ерроры в массив, например if(!validate($var)) $error[]='Нет такого юзера, или юзер ввел пароль неправильно'; Затем в рендере у вас, например Код:
<div class="error_message"> Более того, если вы захотите запросить данные с того же скрипта, то попросту выделяете этот кусок в отдельный файл (или метод, или функцию) и вызываете его (его, ее) единственно когда случились ошибки. Тогда по XMLHttpRequest скрипт получит точно такой же кусок хтмля и вставит его в то же самое место. - Это для случая без перезагрузки. |
Цитата:
|
Цитата:
На вопрос "зачем". Тут все от общей задачи зависит. Так просто "это не правильно" говорить не надо. Возможно окно строится общим для сайта скриптом. И используется скрипт в различных ситуациях. А может шаблон окна уже есть в html. |
Часовой пояс GMT +3, время: 06:17. |