Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проверка времени из поля


Автор: Arisha 27.5.2004, 20:44
Здравствуйте!

Пользователь вводит отдельно час и минуты. Есть ли возможность проверить правильность поля и какая?

Автор: IZ@TOP 27.5.2004, 20:54
В смысле проверить? Не ввел ли он например 35(h) 99(s)? Или ввел ли он числовое значение в поле? Или может надо проверить текущее время на сервере и сравнить с тем что он ввел в форме?
Добавлено @ 20:59
PS Если 1 и 2й варианты, то:
Цитата
if($_POST['h'] > 24) { die('error: Invalid Hour'); } else if($_POST['s'] > 60) { die('error: Invalid second'); }

В принципе такая проерка наверное подойдет и для второго варианта, но если хочется перестраховаться, то так:
Цитата

if(!eregi("[0-9]{2}", $_POST['h'])) { die('error: Invalid hour'); } else if(!eregi("[0-9]{2}", $_POST['s'])) { die('error: Invalid second'); }

Автор: Arisha 27.5.2004, 21:03
Цитата(IZ @ 27.5.2004, 20:54)
Не ввел ли он например 35(h) 99(s)? Или ввел ли он числовое значение в поле?


Именно это и нужно было, спасибочкиsmile.gif
Добавлено @ 21:05
Цитата(IZ @ 27.5.2004, 20:54)
В принципе такая проерка наверное подойдет и для второго варианта, но если хочется перестраховаться, то так:
Цитата

if(!eregi("[0-9]{2}", $_POST['h'])) { die('error: Invalid hour'); } else if(!eregi("[0-9]{2}", $_POST['s'])) { die('error: Invalid second'); }

Странно здесь

"[0-9]{2}"

а если будет введено 99, то получиться все ок?
Добавлено @ 21:12
Может так:
Код


if(!eregi("0.[0-9]",$min) or (!eregi("[0-5].[0-9]",$min)))
{
die('error');
}



P.S. Я плохо понимаю regexp

Автор: IZ@TOP 27.5.2004, 22:33
Arisha, нет, неверно понимаешь, точка обозначает любой знак. Можно попробовать так:
Цитата
ereg("[0-5]{1}[0-9]{1}", $second)
Вот это должно бы сработать.

Автор: Arisha 27.5.2004, 23:31
Цитата(IZ @ 27.5.2004, 22:33)
Arisha, нет, неверно понимаешь, точка обозначает любой знак. Можно попробовать так:
Цитата
ereg("[0-5]{1}[0-9]{1}", $second)
Вот это должно бы сработать.

Хорошо, спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)