Сначала у меня без второй проверки elseif было. Но запустив скрипт(просто, без параметров) получил:
Notice: Undefined index: text in *\saxar.z7.php on line 74
Все верно. Ваш код
print 'Ошибка: Пустой ввод.';
никогда не сработает. Если форма не заполнена, то пост-данных нет. Команда
isset($_POST['text'])
вернет false, а значит никогда не будет вызван код ошибки.
Достаточно просто проверить на существование пост-данных:
if (isset($_POST['text'])) {
echo "Ввели: ".$_POST['text'];
} else {
echo "Ошибка: Форма не заполнена.";
}
11.12.2010, 11:35
Mulder
Цитата:
Сообщение от Flok
кто-то не сделал задание со скобками? o_O
мне кажется, или там делается тупо через регулярки с жадным квантификатором?
Если бы вы делали только через регулярку, то провалили бы задание более чем полностью.
Дано:
(123(456)789)
Ваш ответ:
(123(456)
(456)789)
Правильный ответ:
(123(456)789)
(456)
11.12.2010, 13:36
saxar
Цитата:
Сообщение от Mulder
Достаточно просто проверить на существование пост-данных:
if (isset($_POST['text'])) {
echo "Ввели: ".$_POST['text'];
} else {
echo "Ошибка: Форма не заполнена.";
}
Попробовал. При загрузке вывело:
Ошибка: Форма не заполнена.
Хотя отправки формы и не происходило ещё.
А если отправить $_POST['text'] пустой то будет:
Ввели:
Как всё таки правильно проверку ещё и на пустоту сделать?
11.12.2010, 14:28
Flok
acad, а как парсят? )
просто решение с регурлярками самое очевидное для меня.
11.12.2010, 14:29
acad
Mulder, можно было и правильно регулярками сделать. правда не посикс и с убогой рекурсией и пямяти это кушать будет очень дохера
11.12.2010, 14:33
Mulder
Цитата:
Сообщение от saxar
Попробовал. При загрузке вывело:
Ошибка: Форма не заполнена.
Хотя отправки формы и не происходило ещё.
Перед этим еще делается проверка на нажатие кнопки
if (isset($_REQUEST['имя_кнопки'])) {
...
}
Цитата:
Сообщение от saxar
А если отправить $_POST['text'] пустой то будет:
Ввели:
Как всё таки правильно проверку ещё и на пустоту сделать?
Если отправлен пробел, то уже пост-данные не пустые. Конкретно в этой задаче пустой ввод не критичен. Если же нужно проверять, то сперва данные из формы пропускают через различные фильтры (хотя бы trim и htmlspecialchars). Потом можно посчитать кол-во элементов, либо пропустить через регулярку \s+, либо проверка на пустую строку =="".
11.12.2010, 14:34
Mulder
Цитата:
Сообщение от acad
Mulder, можно было и правильно регулярками сделать. правда не посикс и с убогой рекурсией и пямяти это кушать будет очень дохера
Вот Doc.X сделал правильно. И ничего не кушает :) .
11.12.2010, 16:33
acad
Mulder, так я и не говорил что регулярки это правильно. но задача была без пересечений и я так решал. стек обыкновенный. :)
11.12.2010, 20:02
acad
вроде еще не подошел к концу. вроде до завтра продлили последнее задание.
эм. тему уе закрыли а написано что прием до 12го.
11.12.2010, 20:20
Ramster
Ну так походу это webmaster отредактировал, а мне ничего не сказал - официально объявлено нигде не было.
Пока открыл тему и запретил вложения. Но я за то, чтобы закрыть приём уже сегодня. Решим, когда объявится webmaster.