проверка на mail inject

sax player

Новичок
Для решения данной задачи достаточно проверить правильность email.
Мы проверяем
1. Что введённая строка содержит именно email, а не что-либо ещё.
2. Рега устроена так, что проверяет наличие _одного_ емейл в строке, который занимает всю длину этой строки.
Автору топика удобно в один шаг проверить и то и другое, насколько я понял из приведённой цитаты.
Таким же подходом пользуюсь и я, в своих скриптах. Поэтому проверка с помощью реги является с моей точки зрения логичным и красивым решением.
В строке находится 1 mail, правильного формата. Что, собственно и требуется согласно ограничениям, накладываемым на это поле формы.
Это - именно то, что я думаю

-~{}~ 26.02.06 07:23:

Попутно, я уже бодался из спортивного интереса.
PHP:
$email = '[email protected]\n\r\Cc:[email protected];[email protected]]';
//mail injecting
if (preg_match('/(\\\)+(r|n)/',$email ,$match) ) {echo 'Boo!';}
echo "<br>". $match[1].$match[2];
находит символы \n\r
Я впервые залез в регулярки, и не могу втянуть - почему слэш, экранируемый слэшем, как в доке (\\) дает ошибку, а моя странная конструкция \\\ или \\\\ работает. Как работает -втягиваю, ак вот почему ошибка - пока не понял.
Только в фак не посылайте - до дыр зачитал...
 

sax player

Новичок
это я читал и понимаю.
Я именно и искал последовательность слэш - n , а не единый символ перевода строки.
Странность в количестве слэшей - попробуй сам!
Попутно вопрос:
Ясно, что
$str1 = "bla\r\bla";
и
$str2 = 'bla\r\bla';
- разное суть, в них РАЗНОЕ количество символов.
А преобразовать одну в другую можно?
 

sax player

Новичок
Чтобы, скажем быть уверенным, что \n - один символ

-~{}~ 26.02.06 15:03:

К примеру, получаешь строку из формы - /n там - один символ или 2? И можно ли этим рулить?
 
Сверху