Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: по поводу date

Сообщения:  [1-10]   [11-19] 

 
 автор: confirm   (05.08.2012 в 11:06)   письмо автору
 
   для: ladan   (05.08.2012 в 10:12)
 

Если бы не зря, то на пример массива с датами, мною приведенный, такого бы понимания его: "Вот по этому для таких пользователей такие проверки типа $date = array("","4.8.2012","2012.8.4","4-8-2012","2012-8-4","2012/8/4","4/8/2012"); - роскошь :)" не было.
Этот ваш комментарий может означать только одно - вы, если и читаете, совсем не понимаете истинного назначения функции, выгоды ее применения в том или ином случае.
Ну а про защиту я вообще молчу.

  Ответить  
 
 автор: ladan   (05.08.2012 в 10:12)   письмо автору
 
   для: confirm   (05.08.2012 в 09:09)
 

error_reporting использую вместо @. Да и это не защита, а просто чтоб контент выглядел нормально в некоторых местах

Вы не думайте, что я плохо проверяю данные :)

Ничего не зря! Если бы не ваше участие в первой теме, пришлось бы изобретать очередной велосипед!

  Ответить  
 
 автор: confirm   (05.08.2012 в 09:09)   письмо автору
 
   для: ladan   (04.08.2012 в 23:35)
 

Ничего вы не представляете, но вы правы. Если проверка данных для вас, это "беситься с жиру", а error_reporting, это и есть защита приложения, то вам действительно ничего не надо. Вам достаточно вооружиться preg_шутерами, щита в виде error_reporting и вперед, завоевывать интернет пространство.
Зря я вам в двух темах пытался что-то объяснить.

  Ответить  
 
 автор: btr   (05.08.2012 в 00:03)   письмо автору
 
   для: ladan   (04.08.2012 в 23:35)
 

Простите великодушно, я видимо лезу не в свое дело, однако почему-то хочется высказать свое мнение: проверки от дурака необходимы не потому, что какой либо пользователь начнет вводить свои значения, а для того, чтобы не было проблем у Вас, как хозяина сайта... :\

  Ответить  
 
 автор: ladan   (04.08.2012 в 23:35)   письмо автору
 
   для: confirm   (04.08.2012 в 21:06)
 

Представляю картину: пользователь заходит на сайт, переходит через js навигацию на страницу с формой, потом отключает js и вводит свои значения, вместо того, чтоб один раз нажать на поле и выбрать дату! Вот по этому для таких пользователей такие проверки типа $date = array("","4.8.2012","2012.8.4","4-8-2012","2012-8-4","2012/8/4","4/8/2012"); - роскошь :)

Никто ошибок не увидет, все прячется через error_reporting(0) и через условия c die(); =)

  Ответить  
 
 автор: confirm   (04.08.2012 в 21:06)   письмо автору
 
   для: ladan   (04.08.2012 в 19:59)
 

Если вас будут долбить с целю пробить, то анализировать будут как раз ошибки, которые смачно будут вылазить изо всех щелей скриптов ваших, если вместо того, чтобы обязательно проверять все данные полученные от пользователя вы будете предполагать.
Добираться до вашей формы нет необходимости, достаточно ее один раз увидеть. JavaScript - это язык клиентский, что означает потенциально опасен для сервера.
Я вам на примере календаря вроде бы объяснял, чего достаточно для его построения, так чем данная задача отличается, если в ней опять речь идет о дате?
<?
$date 
= array("","4.8.2012","2012.8.4","4-8-2012","2012-8-4","2012/8/4","4/8/2012");
while(
next($date)) echo date("Y-m-d",strtotime(current($date)))."<br>";

Это о чем либо говорит? Неужто трудно понять, что функция strtotime() вернет значение, которое проверив можно получить ответ на все вопросы: корректен ли формат даты, если да, то не выходит ли дата за рамки пределов (если надо), и не зависимо от формата даты полученной от пользователя, сохранить ее в нужном формате?

  Ответить  
 
 автор: ladan   (04.08.2012 в 19:59)   письмо автору
 
   для: confirm   (04.08.2012 в 19:32)
 

Я с вами спорить не буду) я знаю, что вы намного больше знаете чем я :)

Я не знаю таких функций, чтоб проверить дату на нужный мне формат.. Для меня самое простое это написать регулярку и все! =)

А то, что вы не думаете, что кто-то не введет 1800-01-01, то это весьма печально - человек имеет права на ошибку, а вы обязаны проверять наличие их.

Добраться до формы с датами без js не сможет. Тут явно злодея можно вычислить и наказать как следует :)

И формат даты в нашей стране, это - d.m.Y, и это не является ошибкой!

Я только из-за удобства Y-m-d использую! Т.к нужно по мимо тех условий, нужно еще и с датами в базе сравнить..

Возвращайтесь еще раз к strtotime() - может ли она одна ответить на все вопросы?

Да вроде пойдет, не считая, что 1800-01-01 можно указать в форме :)

  Ответить  
 
 автор: confirm   (04.08.2012 в 19:32)   письмо автору
 
   для: ladan   (04.08.2012 в 19:18)
 

Вопрос в том, как достичь этого die() - или заниматься ерундой используя рег. выражения, или все-таки подумать. Вот об этом речь.
Мне ничего не стоит отключить JS, написать свою страницу и отправить форму вам с нее, тогда как?
А то, что вы не думаете, что кто-то не введет 1800-01-01, то это весьма печально - человек имеет права на ошибку, а вы обязаны проверять наличие их. И формат даты в нашей стране, это - d.m.Y, и это не является ошибкой!
Возвращайтесь еще раз к strtotime() - может ли она одна ответить на все вопросы?

  Ответить  
 
 автор: ladan   (04.08.2012 в 19:18)   письмо автору
 
   для: confirm   (04.08.2012 в 18:45)
 

Что значит отпадает, разве пользователь не может ввести дату в таком формате?
Сможет, но ему тут же die() будет :)

Забыл сказать, что пользователу откроется js календарь по нажатию на поле и сможет выбрать дату, а дата автоматически указывается в формате Y-m-d

Данные от пользователя проверяются, ввел ли он Y-m-d или отключил js и указал m-d-Y...

что она будет возвращать в случае написания даты как: Y-m-d и m-d-Y

strototime("2012-01-01") и strtotime("01-01-2012") возвращают одно и тоже..

Вы изучили strtotime()?

Самое основное :)

Возвращает метку времени с начала эпохи. 2012-08-04(либо другой формат) минус 1970-01-01 и получаем секунды.

Или возращает false в случае ошибки.

Я не думаю, что кто-то будет вводить в ручную даты 1800-01-01, это к беде на сайте не приведет :) Да и такое сможет ввести только зарегистрированный пользователь

  Ответить  
 
 автор: confirm   (04.08.2012 в 18:45)   письмо автору
 
   для: ladan   (04.08.2012 в 18:40)
 

Что значит отпадает, разве пользователь не может ввести дату в таком формате?
Вы изучили strtotime()?

  Ответить  

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования