Но вот вот ветвь if (!preg_match("/^[a-zA-Z0-9]+$/",$name)) почему -то не срабатывает.
При правильном вводе должно выводиться "Имя пользователя задано в правильном формате", при неправильном - соответствующее сообщение. А в итоге постоянно показывается, что все правильно.
Может быть в регулярном выражении ошибка? Спасибо заранее. Вод код:
<html xmlns="http://www.w3 .org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Пpoвepкa Имени(файл Lab6_0_2)</title>
</head>
<h2> Проверка Имени(файл Lab6_0_2) </h2>
<body bgcolor="#ffffff" text="#000000" link="#cbda74" vlink="#808040" alink="#808040">
<?
$name = $_POST['name'];
$seenform=$_POST['seenform'];
// Создать форму $form = "
$form ="
<form action=\"Lab6_0_2.php\" method=\"post\">
<input type=\"hidden\" name=\"seenform\" value=\"z\"> <b>Введите информацию</b><br>
Ваше имя:<br>
<input type=\"text\" name=\"name\" size=\"20\" maxlength=\"20\" value=\" $name\"><br>
<input type=\"submit\" value=\"Отправить\"> <br>Lab6_0_2.php. Обработка ошибок при вводе <br>неправильного имени производится в этом же файле </form>";
if ($seenform != "z"): // Заполнялась ли форма ранее?
print "$form"; //echo "Первая прорисовка формы";
else:
// Пользователь заполнил форму. Проверить введенные данные,
//echo " form нарисована $name";
$error_flag = "n"; //признак что ошибок нет
if ($name == "") :
// Убедиться в том, что поле имени содержит информацию
print "<font color=\"red\"> Вы забыли ввести Ваше имя </font><br>";
$error_flag = "y";//признак наличия ошибки
// Запретим пользователю использовать в своем имени любые символы, кроме букв латинского алфавита и цифр.
$name = trim($name);
if (!preg_match("/^[a-zA-Z0-9]+$/",$name)):
echo "<font color=\" red\">Имя пользователя задано в неправильном формате</font><br>";
echo "<font color=\"red\">Имя пользователя должно состоять из букв латинского алфавита и цифр</font><br>";
$error_flag = "y";//признак наличия ошибки
//echo "Имя пользователя задано в правильном формате";
endif; //if(ipreg_match(
endif; //if ($name == "")
if ($error_flag == "y"):
// Если флаг ошибки $error_flag установлен, то заново отобразить форму.
print "$form";
else: // Обработать данные пользователя
print "<br>Имя пользователя задано в правильном формате";
endif;
endif; //if ($seenform != "z")
?>
</body>
</html>