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

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

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

 

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

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

тема: Проверка переменной

Сообщения:  [1-9] 

 
 автор: Trianon   (27.04.2007 в 09:14)   письмо автору
 
   для: Angel_Hranitel   (20.04.2007 в 21:24)
 

>посмотрите пожалуйста...
Я не понимаю Вашу логику.
Зачем сперва экранировать кавычки, потом преобразовывать текст в html-эквивалент, и в конце этого всего полученный кишмиш пытаться проверять регулярками?
Как только Вы меня убедите, что эти шаги нужны, я смогу осмысленно это смотреть.
А пока ничего, кроме нескольких слов без падежей, эти строки у меня не вызывают.

   
 
 автор: bronenos   (26.04.2007 в 22:45)   письмо автору
 
   для: Angel_Hranitel   (20.04.2007 в 21:24)
 

вместо этих десятков строк я бы предложил всего две...

foreach ($_GET as $k=>$v)
$_GET[$k] = addslashes (htmlspecialchars ($v));

   
 
 автор: Angel_Hranitel   (20.04.2007 в 21:24)   письмо автору
 
   для: Trianon   (20.04.2007 в 21:16)
 

с логинлм получилось... но так чувствую еще проблем с этой проверкой...........

посмотрите пожалуйста...

// например ' замениться на ', " замениться на "
    $_GET['login'] = addslashes($_GET['login']);
// заменяем все специальные символы эквивалентом
    $_GET['login'] = htmlspecialchars ($_GET['login']);
/* Удаляем все символы кроме букв и цифр
    $username = preg_replace("/[^a-z0-9_()-]/i", "", $_GET['login']);
*/
// Проверяем все символы на буквы и цифры
if( !( preg_match("/^([a-z0-9\._-]*)$/i", $_GET['login']) ) )
  {
     echo 'В поле "Login" введени недопустимые символы!</p></card></wml>'; exit;
  }


$_GET['pass1'] = addslashes($_GET['pass1']);
$_GET['pass2'] = addslashes($_GET['pass2']);
$_GET['name'] = addslashes($_GET['name']);
$_GET['sex'] = addslashes($_GET['sex']);
$_GET['dd'] = addslashes($_GET['dd']);
$_GET['mm'] = addslashes($_GET['mm']);
$_GET['gggg'] = addslashes($_GET['gggg']);
$_GET['city'] = addslashes($_GET['city']);
$_GET['br'] = addslashes($_GET['br']);
$_GET['mail'] = addslashes($_GET['mail']);
$_GET['wap'] = addslashes($_GET['wap']);
$_GET['web'] = addslashes($_GET['web']);
$_GET['tel'] = addslashes($_GET['tel']);
$_GET['about'] = addslashes($_GET['about']);

$_GET['pass1'] = htmlspecialchars($_GET['pass1']);
$_GET['pass2'] = htmlspecialchars($_GET['pass2']);
$_GET['name'] = htmlspecialchars($_GET['name']);
$_GET['sex'] = htmlspecialchars($_GET['sex']);
$_GET['dd'] = htmlspecialchars($_GET['dd']);
$_GET['mm'] = htmlspecialchars($_GET['mm']);
$_GET['gggg'] = htmlspecialchars($_GET['gggg']);
$_GET['city'] = htmlspecialchars($_GET['city']);
$_GET['br'] = htmlspecialchars($_GET['br']);
$_GET['mail'] = htmlspecialchars($_GET['mail']);
$_GET['wap'] = htmlspecialchars($_GET['wap']);
$_GET['web'] = htmlspecialchars($_GET['web']);
$_GET['tel'] = htmlspecialchars($_GET['tel']);
$_GET['about'] = htmlspecialchars($_GET['about']);

if(!isset($_GET['login']) )
{echo 'Поле "Login" не заполнено!!!</p></card></wml>'; exit;}
if($_GET['pass1']!==$_GET['pass2'])
{echo 'Пароли не совпадают!</p></card></wml>'; exit;} else {$pass=$_GET['pass1'];}
if(!isset($_GET['name']) )
{echo 'Поле "Имя" не заполнено!!!</p></card></wml>'; exit;}
if(!isset($_GET['city']) )
{echo 'Поле "Город" не заполнено!!!</p></card></wml>'; exit;}
if(!isset($_GET['dd']) )
{echo 'Поле "День" не заполнено!!!</p></card></wml>'; exit;}
if(!isset($_GET['mm']) )
{echo 'Поле "Месяц" не заполнено!!!</p></card></wml>'; exit;}
if(!isset($_GET['gggg']) )
{echo 'Поле "Год" не заполнено!!!</p></card></wml>'; exit;}

if(!preg_match("|^[d]*$|", $_GET['dd']))
{echo 'В поле "День" введени недопустимые символы!</p></card></wml>'; exit;}
if(!preg_match("|^[d]*$|", $_GET['mm']))
{echo 'В поле "Месяц" введени недопустимые символы!</p></card></wml>'; exit;}
if(!preg_match("|^[d]*$|", $_GET['gggg']))
{echo 'В поле "Год" введени недопустимые символы!</p></card></wml>'; exit;}
if(!preg_match("|^[d]*$|", $_GET['sex']))
{echo 'В поле "Пол" введени недопустимые символы!</p></card></wml>'; exit;}
if(!preg_match("|^[d]*$|", $_GET['tel']))
{echo 'В поле "Телефон" введени недопустимые символы!</p></card></wml>'; exit;}

if( !( preg_match("/^([a-z0-9]*)$!i", $_GET['pass1']) ) )
  {
     echo 'В поле "Пароль" введени недопустимые символы!</p></card></wml>'; exit;
  }
if( !( preg_match("/^([a-z0-9]*)$!i", $_GET['pass2']) ) )
  {
     echo 'В поле "Повтор пароля" введени недопустимые символы!</p></card></wml>'; exit;
  }
if( !( preg_match("/^([a-z0-9\._-@?!=]*)$/i", $_GET['name']) ) )
  {
     echo 'В поле "Имя" введени недопустимые символы!</p></card></wml>'; exit;
  }
if( !( preg_match("/^([a-z0-9а-я\._-@?!=]*)$/i", $_GET['city']) ) )
  {
     echo 'В поле "Город" введени недопустимые символы!</p></card></wml>'; exit;
  }
if( !( preg_match("/^([a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$/i", $_GET['mail']) ) )
  {
     echo 'В поле "E-Mail" введени недопустимые символы!</p></card></wml>'; exit;
  }
if( !( preg_match("/^((http://))((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z;]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((/|\?)[a-z0-9~#%&'_\+=:;\?\.-]*)*)\$", $_GET['wap']) ) )
  {
     echo 'В поле "Wap-сайт" введени недопустимые символы!</p></card></wml>'; exit;
  }
if( !( preg_match("/^((http://))((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z;]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((/|\?)[a-z0-9~#%&'_\+=:;\?\.-]*)*)\$", $_GET['web']) ) )
  {
     echo 'В поле "Web-сайт" введени недопустимые символы!</p></card></wml>'; exit;
  }
if( !( preg_match("/^([a-z0-9а-я_-@?!=]*)$/i", $_GET['about']) ) )
  {
     echo 'В поле "О себе" введени недопустимые символы!</p></card></wml>'; exit;
  }


   
 
 автор: Angel_Hranitel   (20.04.2007 в 21:21)   письмо автору
 
   для: Angel_Hranitel   (20.04.2007 в 21:00)
 


if( !( preg_match("/^([a-z0-9]*)$!i", $_GET['pass1']) ) )
  {
     echo 'В поле "Пароль" введени недопустимые символы!</p></card></wml>'; exit;
  }


и здесь тоже не правильно работает... :(

   
 
 автор: Trianon   (20.04.2007 в 21:16)   письмо автору
 
   для: Angel_Hranitel   (20.04.2007 в 15:09)
 

я тоже.
вероятно потому, что и вправду незаполнено.
(У меня - абсолютно однозначно, так оно вообще отсутствует)

а причем тут регулярные выражения? :)

   
 
 автор: Angel_Hranitel   (20.04.2007 в 21:00)   письмо автору
 
   для: zerocool   (20.04.2007 в 16:50)
 

Get... А что?

   
 
 автор: zerocool   (20.04.2007 в 16:50)   письмо автору
 
   для: Angel_Hranitel   (20.04.2007 в 15:09)
 

Попробуйте так, и каким методом посылаются данные?

if(!isset($_GET['login']) )
{echo 'Поле "Login" не заполнено!!!</p></card></wml>'; exit;} 

   
 
 автор: Unkind   (20.04.2007 в 15:15)   письмо автору
 
   для: Angel_Hranitel   (20.04.2007 в 15:09)
 

Данные посылаются методом GET?

   
 
 автор: Angel_Hranitel   (20.04.2007 в 15:09)   письмо автору
 
 


if($_GET['login']=="")
{echo 'Поле "Login" не заполнено!!!</p></card></wml>'; exit;}


получаю

Поле "Login" не заполнено!!!

почему?

   

Сообщения:  [1-9] 

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

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