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

Форум PHP

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

 

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

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

тема: Проверка правильного ввода...
 
 автор: Sasha   (13.07.2005 в 22:33)   письмо автору
 
 

Есть такая строка, смотрящая за тем, чтоб не вводили ненужные символы в текст письма ( Только русский великий :)

$patern = "|^[ а-я,А-Я,0-9,.,_,-,-]+$|i"; 

А как тут разрешить обычные кавычки?

   
 
 автор: cheops   (14.07.2005 в 02:37)   письмо автору
 
   для: Sasha   (13.07.2005 в 22:33)
 

<?php
$patern 
"|^[ а-я,А-Я,0-9,.,_,-,-\"]+$|i";
?>

   
 
 автор: Sasha   (14.07.2005 в 23:35)   письмо автору
 
   для: cheops   (14.07.2005 в 02:37)
 

Что не работает :((
Если в форме слово в кавычках, текст не отправляется.

   
 
 автор: cheops   (15.07.2005 в 00:24)   письмо автору
 
   для: Sasha   (14.07.2005 в 23:35)
 

Хм... странно - приведите пожалуйста кусок кода, где происходит проверка.

   
 
 автор: Sasha   (15.07.2005 в 00:50)   письмо автору
 
   для: cheops   (15.07.2005 в 00:24)
 


// проверка 
$patern = "|^[ а-я,А-Я,0-9,.,_,-,-\"]+$|i"; 
if(!preg_match($patern, $name)) exit("В названии  использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку."); 
.
.
.
$patern = "|^[ a-z,A-Z,@,_,-,-,0-9,/,:,.]+$|i";
if(!preg_match($patern, $data)) exit("В e-mail использованы недопустимые символы<br>Вернитесь назад и исправьте ошибку.");  

// составляем письмо 
$message = " 
.
.

   
 
 автор: cheops   (15.07.2005 в 02:45)   письмо автору
 
   для: Sasha   (15.07.2005 в 00:50)
 

Хм... странно, а у меня нормально срабатывает следующий скрипт
<?php 
$name 
'"Программирование"';
$patern "|^[ а-я,А-Я,0-9,.,_,-,-\"]+$|i"
if(!
preg_match($patern$name)) exit("В названии  использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку.");
else echo 
"Всё нормально";
?>

Попробуйте вывести значение переменной $name в окно браузера - что в ней?

   
 
 автор: Sasha   (15.07.2005 в 11:18)   письмо автору
 
   для: cheops   (15.07.2005 в 02:45)
 

Извините за тупой вопрос: А как её вывести ? ;(

Вот частично код формы

<form action="mail.php" method="POST" name="new">
Название:<br><INPUT class=input name="name" size="50" maxlength="40" alt="Название ">
           <p class="p2">не более 40 символов</p>
           URL :<br><INPUT class=input name="url" size="60" alt="Адрес  в  интернет">
           <p class="p2">Адрес в интернет</p>
           Аннотация:<br><textarea name="pass" rows="4" cols="50"></textarea>
           <p class="p2">нннннннннннн </p>


<input type="submit" value="Отправить" name="submit" > 
           


И обработчик

<?php 
// указываем аддрес и тему письма. 
$to  "sashka@alpkrim.kiev.ua"
$subject "Новая анкета"


// проверка 
$patern "|^[ а-я,А-Я,0-9,.,_,-,-\"]+$|i"
if(!
preg_match($patern$name)) exit("В названии фирмы использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку."); 
if(!
preg_match($patern$pass)) exit("В аннотации использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку.");
$patern "|^[ a-z,A-Z,@,_,-,-,0-9,/,:,.]+$|i";
if(!
preg_match($patern$url)) exit("В URL использованы недопустимые символы<br>Вернитесь назад и исправьте ошибку."); 
// составляем письмо 
$message 
<html> 
<head> 
<title>
$subject</title> 
</head> 
.
.
.
// отправляем письмо 
$headers  = "Content-typetext/htmlcharset=windows-1251 \r\n"; 
mail(
$to$subject$message$headers); 

   
 
 автор: cheops   (15.07.2005 в 12:34)   письмо автору
 
   для: Sasha   (15.07.2005 в 11:18)
 

<?php 
// указываем аддрес и тему письма. 
$to  "sashka@alpkrim.kiev.ua"
$subject "Новая анкета"
// Выводим $name
echo $name;
// проверка 
$patern "|^[ а-я,А-Я,0-9,.,_,-,-\"]+$|i"
if(!
preg_match($patern$name)) exit("В названии фирмы использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку."); 
if(!
preg_match($patern$pass)) exit("В аннотации использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку."); 
$patern "|^[ a-z,A-Z,@,_,-,-,0-9,/,:,.]+$|i"
if(!
preg_match($patern$url)) exit("В URL использованы недопустимые символы<br>Вернитесь назад и исправьте ошибку.");
?>

   
 
 автор: Sasha   (15.07.2005 в 12:51)   письмо автору
 
   для: cheops   (15.07.2005 в 12:34)
 

К сожалению ничего не изменилось :((
Только теперь ( Если например вводить Телекомпания "Бриз" )то выводиться

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

   
 
 автор: cheops   (15.07.2005 в 13:12)   письмо автору
 
   для: Sasha   (15.07.2005 в 12:51)
 

Прогоните содержимое переменной $name через stripslashes()
<?php 
// указываем аддрес и тему письма. 
$to  "sashka@alpkrim.kiev.ua"
$subject "Новая анкета"
// проверка 
$patern "|^[ а-я,А-Я,0-9,.,_,-,-\"]+$|i"
if(!
preg_match($paternstripslashes($name))) exit("В названии фирмы использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку."); 
if(!
preg_match($patern$pass)) exit("В аннотации использованы символы отличные от букв русского алфавита<br>Вернитесь назад и исправьте ошибку."); 
$patern "|^[ a-z,A-Z,@,_,-,-,0-9,/,:,.]+$|i"
if(!
preg_match($patern$url)) exit("В URL использованы недопустимые символы<br>Вернитесь назад и исправьте ошибку."); 
?>

Что-нибудь изменилось?

   
 
 автор: Sasha   (15.07.2005 в 16:34)   письмо автору
 
   для: cheops   (15.07.2005 в 13:12)
 

Всё стало на свои места! Пасибо!!!
хотя перед кавычками \ маячит :)

   
 
 автор: sasha   (20.07.2005 в 19:56)   письмо автору
 
   для: Sasha   (15.07.2005 в 16:34)
 

Хм. А используя эти символы, можно сделать какуюто гадость?

Немножко не в тему :
А вообще тяжко в сообщении подделать адрес отправителя?

   
 
 автор: cheops   (20.07.2005 в 20:04)   письмо автору
 
   для: sasha   (20.07.2005 в 19:56)
 

>Хм. А используя эти символы, можно сделать какуюто гадость?
Сейчас практически все хостинги работают либо в защищённом режиме, либо отключают функции позволяющие наносить вред... т.е. вероятность достаточно мала.
>Немножко не в тему :
>А вообще тяжко в сообщении подделать адрес отправителя?
Не очень понятно что имеется ввиду: почта, Web или что-то другое?

   
 
 автор: Sasha   (20.07.2005 в 20:19)   письмо автору
 
   для: cheops   (20.07.2005 в 20:04)
 

имеется в виду почта.
приходят письма с вирусом с адреса почтового ящика, который по идее находиться на моем хосте, но я его не создавал...
хотя может это ящик хостера....

   
 
 автор: cheops   (20.07.2005 в 20:44)   письмо автору
 
   для: Sasha   (20.07.2005 в 20:19)
 

Так как используемые сейчас протоколы создавались в 70-е годы, когда не стояли проблемы спама, вирусов и хакеров, в почте подделывается всё что только можно - самые шикарные вирусы приходят мне якобы с моего же адреса, даже DrWeb давится от такой наглости... Адреса отправления у современных вирусов и спама - всегда поддельные, чтобы эпидемию нельзя было прекратить излечением нескольких хостов. Поэтому, если в письме указан ваш хост, вирус точно отправлен не от вас, иначе бы он обязательно выбрал бы другой хост в адресе отправителя, чтобы замести следы и чтобы вам не могли написать письмо, что у вас машина заражена.

   
 
 автор: Sasha   (20.07.2005 в 23:45)   письмо автору
 
   для: cheops   (20.07.2005 в 20:44)
 

Спасибо!
Очень интересно, вот оно как !!!!
достают только...по 3и штуки в день приходят :))
надеюсь это когдато кончиться :)

   
 
 автор: glsv (Дизайнер)   (22.07.2005 в 07:20)   письмо автору
 
   для: Sasha   (20.07.2005 в 23:45)
 

Всего по 3!? Радуйтесь – это очень мало :)

   
 
 автор: Андрюха.   (22.07.2005 в 11:28)   письмо автору
 
   для: glsv (Дизайнер)   (22.07.2005 в 07:20)
 

А по 1000 шт. за субботу и воскресенье (получение в понедельник) ?
Три это мечты. Если не хочешь спам зайди на рамблер-почту. За неделю максимум одно. Наверняка фильтр спама.

   
Rambler's Top100
вверх

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