Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PHP. куда вставлять регулярное выражение "/[0-9a-z_]+@[0-9a-z_^\.]" ?

Денис Бекетов Знаток (447), закрыт 8 лет назад
нужно что бы вводя некорректные символы в "Имя" появлялось сообщение об ошибке.

<?php

header( "Content-Type: text/html; charset=utf-8;" );

header( "Content-Encoding: utf-8" );

?>


<?php
$name = $_POST['a'];
$email = $_POST['b'];
$datar = $_POST['c'];
$nomerg = $_POST['d'];

if (preg_match("[0-9a-z_][0-9a-z_^\.]",$name)) {
echo "Все верно";
} else {
echo "Есть недопустимые символы";
}

?>
<?php
function clean($value = "") {
$value = trim($value);
$value = stripslashes($value);
$value = strip_tags($value);
$value = htmlspecialchars($value);

return $value;
}
?>
<?php
function check_length($value = "", $min, $max) {
$result = (mb_strlen($value) < $min || mb_strlen($value) > $max);
return !$result;
}
?>
<?php
$name = clean($name);
$email = clean($email);
$datar = clean($datar);
$nomerg = clean($nomerg);

if(!empty($name) && !empty($email) && !empty($datar) && !empty($nomerg)) {
$email_validate = filter_var($email, FILTER_VALIDATE_EMAIL);

if(check_length($name, 2, 25) && check_length($datar, 2, 50) && check_length($nomerg, 2, 1000) && $email_validate) {
echo "Спасибо за сообщение";
} else { // добавили сообщение
echo "Введенные данные некорректные";
}
} else { // добавили сообщение
echo "Заполните пустые поля";
}
?>



Имя:


Электронка:


Год рождения:


Номер группы:
Дополнен 8 лет назад
на
if (preg_match("[0-9a-z_][0-9a-z_^\.]",$name)) {
echo "Все верно";
} else {
echo "Есть недопустимые символы";
}

выдаётся ошибка
"Warning: preg_match() [function.preg-match]: Unknown modifier '[' in Z:\home\localhost\www\6.php on line 17"
Лучший ответ
Oleg D. Искусственный Интеллект (110640) 8 лет назад
в preg_match нужны ограничители шаблона.
т. е. вместо
if (preg_match("[0-9a-z_][0-9a-z_^\.]",$name)) {
нужно
if (preg_match("/[0-9a-z_][0-9a-z_^\.]/",$name)) {
, либо любой другой ограничитель.
а еще у вас в заголовке вопроса и в приведенном исходнике разные регулярки (и обе очень странные)
Остальные ответы
Саня Семенов Оракул (60485) 8 лет назад
[0-9a-z_]+@[0-9a-z_^\.]+ сюда плюс надо добавить а то работать не будет
вставлять в preg_match('сюда', строка, результат )
Похожие вопросы