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

Форум Регулярные Выражения

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

 

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

вид форума:
Линейный форум Структурный форум

тема: проверка массива $_GET
 
 автор: Slo_Nik   (19.03.2009 в 12:50)   письмо автору
 
 

попробовал написать рег.выражение для проверки массива, правильно ли введены данные в адресной строке и если нет, то прервать выполнение скрипта и перевести на другую страницу с предупреждением.
оформил как функцию.
вот что получилось

<?php
function regfun($arr){
    foreach(
$arr as $k => $v){
        if(!
preg_match("#^read(main|contact|contest)+?$|^[a-z_]+[0-9]{1,4}$#i",$k.$v)){
        echo 
"соответствий не найдено<br>";
        echo 
"<html><head><meta http-equiv='refresh' content='0; url=warning.php'></head></html>";
        exit();
        }
   }
   return 
$arr;
}
?>

просьба к знающим людям указать на ошибки, если таковые есть. я проверял на локальном, вроде всё работает.
принцип, по какому идёт проверка.
при заходе на сайт, пользовалель попадает на index.php, для того, что бы перемещаться по закладкам в адресе передаю дополнительные параметры.
read обязательный параметр, в зависимости от значения, пользователь попадает на соответствующую закладку, таких закладок 3 шт, main - главная страница, contact - контакты, contest - конкурсы.
когда переходит на закладку "конкурсы", выводится список конкурсов, что бы перейти к конкретному конкурсу добавляется параметр id конкурса.
может прописать явно id, а не представлять как диапозон символов и как мне прописать _, что бы отсутствие этого символа воспринималось как не соответствие выражению?
и ещё такой вопрос.
надо ли делать дополнительные проверки, что бы повысить безопасность скрипта?
на этих страницах сайта не вводятся ни какие данные и ни куда не передаются, информация на этоих страницах только для просмотра.

  Ответить  
 
 автор: AcidTrash   (19.03.2009 в 22:51)   письмо автору
 
   для: Slo_Nik   (19.03.2009 в 12:50)
 

при заходе на сайт, пользовалель попадает на index.php, для того, что бы перемещаться по закладкам в адресе передаю дополнительные параметры.
read обязательный параметр, в зависимости от значения, пользователь попадает на соответствующую закладку, таких закладок 3 шт, main - главная страница, contact - контакты, contest - конкурсы.


Очень странно, зачем здесь РВ?
Наверно вам поможет конструкция switch.
А на счет обработки передаваемых данных, то на форуме куча постов где можно почитать.

  Ответить  
 
 автор: Slo_Nik   (20.03.2009 в 01:21)   письмо автору
 
   для: AcidTrash   (19.03.2009 в 22:51)
 

Вы меня не поняли.
Я и так использую переключатель swith,РВ я проверяю данные которые передаются в адресной строке для swith.
Насчёт обработки я спросил потому, что меня интересовало достаточно такой проверки при тех условиях которые я описал или нет?

  Ответить  
 
 автор: Slo_Nik   (21.03.2009 в 11:21)   письмо автору
 
   для: Slo_Nik   (20.03.2009 в 01:21)
 

и ни кто не может посмотреть подсказать?

  Ответить  
Rambler's Top100
вверх

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