Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверка GET параметров при запросе

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Ismail
Отправлено: 30 Июня, 2014 - 15:26:55
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Доброго времени суток. Подскажите, как организовать проверку. Есть запрос такого вида:

site.ru/index.php?date=19-06-2014

ДД-ММ-ГГ.

Мне нужно проверить, если например запрос будет:

site.ru/index.php?date=19-06-20142

или

site.ru/index.php?date=1906-2014

или

или site.ru/index.php?date=100500

- будет появляться сообщение об ошибке.

Дату конвертирует функция strtotime, после чего запрос в БД, есть ли такая дата..

Подскажите, как вообще такое проверяется??
 
 Top
esterio
Отправлено: 30 Июня, 2014 - 15:34:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Ismail пишет:
site.ru/index.php?date=19-06-20142

Ismail пишет:
Дату конвертирует функция strtotime

Такой даты не существуе, strtotime вернет FALSE
 
 Top
Мелкий Супермодератор
Отправлено: 30 Июня, 2014 - 15:34:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ismail пишет:
19-06-20142

Почему эта дата ошибочна?

datetime::createFromFormat
Правда, пока что спокойно относится к датам вроде 2013-13-31, можно сделать format обратно в исходный формат и сравнить строки.


-----
PostgreSQL DBA
 
 Top
esterio
Отправлено: 30 Июня, 2014 - 15:39:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Мелкий
там год 20142. насколько мне извесно это уже за пределом UNIX TIMESTAMP
 
 Top
Ismail
Отправлено: 30 Июня, 2014 - 15:52:08
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Все у меня обрабатывается, вот код:

PHP:
скопировать код в буфер обмена
  1.  
  2. $val = $_GET['date'];
  3. $t=strtotime("$val");
  4. $tim = date ("Y-m-d", $t);
  5.  
 
 Top
Мелкий Супермодератор
Отправлено: 30 Июня, 2014 - 16:46:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




esterio, ааа, мой любимый datetime не умеет 64-битный таймштамп Слёзы в глазах

Но сама дата-то корректна. Ну наступит только через 18 с лишним тысяч лет, но корректна.


-----
PostgreSQL DBA
 
 Top
Ismail
Отправлено: 30 Июня, 2014 - 16:52:18
Post Id



Новичок


Покинул форум
Сообщений всего: 46
Дата рег-ции: Сент. 2012  


Помог: 0 раз(а)




Может тупо проверять на количество символов и есть ли после каждой пары цифр тире? Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB