Имеется условие Код (PHP): if (!empty($_POST['subm'])&&!empty($_POST['name'])) { действие..... } Вопрос такой, как сделать чтобы выводилось сообщение, о том что поля не заполнены(при нажатии отправить) ? Если написать это в else то сообщение будет висеть постоянно.
нет. просто перестать тупить. условие выполняется или не выполняется. не может часть else выполняться в любом случае! если не уверен что находится в переменной или каков результат функции — отлаживайся!!! ↓
я так понимаю, чтобы форма совсем не отправлялась на сервер? тогда обработка пишется на стороне клиента и не позволяет браузеру отправить форму. пишется она на яваскрипте, до пхп дело не доходит. до яваскрипта еще не дошел, подсказать не смогу. но все они си-образные, понятные =) если очень нужно сейчас это реализовывать можно загуглить код и разобраться без особых проблем, если хоть примерно въехал в пхп. что-то вроде "javascript как запретить отправку формы при пустом поле"
Включаю телепатию - автор имеет ввиду, что это сообщение у него просто висит при генерации страницы, потому как условие, разумеется, не может быть выполнено. И ему не нравится, что скрипт ругается на кривые данные еще до того, как он вообще их ввел. И это не удивительно. На такой случай, автор, просто оберни секции кода, зависящие от $_POST, в проверку, мол есть ли вообще в этом посте хоть что-то, а не конкретные элементы. Код (PHP): if (!empty($_POST)){ //твой код, зависящий от содержимого POST-а. } Ну или просто не инклудить этот код сразу в исполняемый скрипт, а отрабатывать им отдельно, отправляя, непосредственно на него, форму. Вариантов больше двух на деле. Добавлено спустя 2 минуты 6 секунд: Иногда лучше не сказать ничего, чем что-то. Поверь.
OR и восклицательные знаки убрать и станет понятнее почему так. Так вообще делать не стоит, надо на каждое неверно заполненное поле выдавать свою сообщеньку.
Ну это уже тонкости. Если он сделает 2 условия, а не одно, все равно они при генерации страницы не выполнятся и будут висеть ошибками. Проблема у автора не в этом
действительно, скорее всего он имел ввиду это и ты все правильно объяснил. у себя я использую if($_SERVER["REQUEST_METHOD"]=='POST'), но твой метод короче, возьму на заметку. так что все правильно, писать иф. пишу сообщения в основном только из-за этой цитаты. в чем я был не прав ты считаешь? я написал свое предложение исходя из "при нажатии отправить", а не "после отправки формы". само-собой до пхп дело, конечно, доходит. ява скрипт сам в браузере не пропишется. дело не доходит до обработки этого события средствами пхп, в этом смысл был, не надо сервер лишний раз дергать и просить обрабатывать ошибки при очевидной оплошности пользователя. а вообще, конечно, вопрос был не об этом. я плохим телепатом оказался.
Короче по коду, но чуть дороже по выполнению. Это тоже на заметку. Так что он не лучше, он иначе. В том, что js тут не при чем. Только человека путаешь. Начал искать проблему вовсе не там, где ее описал автор, начал ее раздувать, начал генерировать решения, отправляя автора в изучение JS, пошла речь о прерываниях отправки формы, о клиентской обработке данных... Когда автору будет нужно, чтобы отправка формы прерывалась, он спросит "как перехватить отправку формы?". Не ищи между строк того, что там не написано, не отвечай на вопросы, которые не были поставлены. Только собьешь человека с толку.
также. либо явная проверка request method, либо есть правила роутинга. короче я тестирую переменную $_POST только в обработчике POST-запроса ))) поэтому проблему автора даже не понял.