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

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

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

 

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

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

тема: Запрет символов < и >
 
 автор: (Sandr)   (16.03.2011 в 23:22)   письмо автору
 
 

Ух.. разговорились тут вы))

+++
Чтоб не создавать лишних тем, я сдесь вопрсец напишу)
Подскажите, что не так в этой регулярке? Она должна осуществлять запрет ввода символов < > ' и пропускать все остальные.
Вот собственно и она preg_match("~^[^\<\>']{5,50}$~", $_POST['mess'])

  Ответить  
 
 автор: cheops   (16.03.2011 в 23:30)   письмо автору
 
   для: (Sandr)   (16.03.2011 в 23:22)
 

Да вроде все нормально, а что с ней не так? На какую строку она неправильно реагирует?

PS Под новые вопросы лучше заводить новые темы, постраничной навигации нет - не очень удобно, когда темы длинные.

  Ответить  
 
 автор: (Sandr)   (16.03.2011 в 23:37)   письмо автору
 
   для: cheops   (16.03.2011 в 23:30)
 

"PS Под новые вопросы лучше заводить новые темы, постраничной навигации нет - не очень удобно, когда темы длинные." извиняюсь, не знал)

"Да вроде все нормально, а что с ней не так?" пропускает она символы < > ' а должна пропускать всё кроме них.

  Ответить  
 
 автор: cheops   (16.03.2011 в 23:41)   письмо автору
 
   для: (Sandr)   (16.03.2011 в 23:37)
 

Хм... а такой скрипт у вас что выводит?
<?php 
  $text 
"Этот текст <не пройдет>";
  
$pattern "~^[^\<\>']{5,50}$~";
  if(!
preg_match($pattern$text)) exit("Недопустимые символы");
  else echo 
"Все нормально";
?>
PS Может где-нибудь ошибка в логике if?

  Ответить  
 
 автор: (Sandr)   (16.03.2011 в 23:50)   письмо автору
 
   для: cheops   (16.03.2011 в 23:41)
 

"Хм... а такой скрипт у вас что выводит?" этот выводит "Недопустимые символы" . Странно..

"PS Может где-нибудь ошибка в логике if?"
Возможно.. Вот полная проверка:
if(!preg_match("~^[^\<\>\']{5,".$max."}$~", $mess))
{
echo 'Введённое сообщение меньше 5 или больше '.$max.' символов, либо содержит запрещённые символы!<br>';
unset($_SESSION['rand']);
exit;
}

  Ответить  
 
 автор: cheops   (16.03.2011 в 23:59)   письмо автору
 
   для: (Sandr)   (16.03.2011 в 23:50)
 

$max, конечно, больше 5 (выведите его на всякий случай - может где-нибудь обнуляется)?

  Ответить  
 
 автор: (Sandr)   (17.03.2011 в 00:05)   письмо автору
 
   для: cheops   (16.03.2011 в 23:59)
 

Вывел, $max = 250 . Блин, вечная путаница у меня с этими регулярками((

  Ответить  
 
 автор: (Sandr)   (17.03.2011 в 00:29)   письмо автору
 
   для: (Sandr)   (17.03.2011 в 00:05)
 

Вот блин... у меня до регулярки стоял htmlspecialchars() и всё в сущности преобразовывал. Столько времени потерял((
cheops спасибо)

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

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