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)) {
, либо любой другой ограничитель.
а еще у вас в заголовке вопроса и в приведенном исходнике разные регулярки (и обе очень странные)
<?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 "Заполните пустые поля";
}
?>
Имя:
Электронка:
Год рождения:
Номер группы: