Код:
<table>
<form method=post>
<tr><td>Имя</td><td><input type=text name=name></td></tr>
<tr><td>Пароль</td><td><input type=password name=pass></td></tr>
<tr><td>Повторите пароль</td><td><input type=password name=pass_again></td></tr>
<tr><td>e-mail</td><td><input type=text name=mail></td></tr>
<tr><td>URL</td><td><input type=text name=url></td></tr>
<tr><td></td><td><input type=submit value='Зарегестрировать'></td></tr>
</form>
</table>
<?php
//Обработчик HTML-формы
/////////////////////////////////////////////////////////
// 1. Блок проверки правильности ввода данных
///////////////////////////////////////////////////////////
//Удаляем лишние пробелы
$_POST['name'] = trim($_POST['name']);
$_POST['pass'] = trim($_POST['pass']);
$_POST['pass_again'] = trim($_POST['pass_again']);
//Проверяем, не пустой ли суперглобальный массив $_POST
if(empty($POST['name']))
exit('Поле ИМЯ не заполнено');
if(empty($POST['pass']))
exit('Поле Пароль не заполнено');
if(empty($POST['pass_again']))
exit('Поле ПОВТОРИТЕ ПАРОЛЬ не заполнено');
if ($_PASS['pass'] != $_PASS['pass_again'])
exit('Пароли не совпадают');
//Если введён e-mail, проверяем его на корректность
if(!empty($_POST['e-mail']))
{
if(!preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$i",$_POST['email']))
{
exit('Поле "E-mail" должно соответствовать формату somebody@somewhere.ru');
}
}
//////////////////////////////////////////////////////
// 2. Блок проверки на уникальность
/////////////////////////////////////////////////////
//Имя файла даннных
$filename = "text.txt";
//Проверяем, не было ли переданное имя зарегестрировано ранее
$arr = file($filename);
foreach ($arr as $line)
{
//Разбиваем строку по разделителю ::
$data = explode("::", $line);
//В массив $temp помещаем имена уже зарегестрированных посетителей
$temp[] = $data[0];
}
//Проверяем, не содержится ли текущее имя в массиве имён $temp
if(in_array($_POST['name'],$temp))
exit("Данное имя уже зарегестрировано, выберите другое");
//////////////////////////////////////////////////
// 3. Блок регистрации пользователя
////////////////////////////////////////////////
//Помещаем данные в текстовый файл
$fd = fopen($filename, "a");
if (!$fd)
exit ("Ошибка при открытии файла данных");
$str = $_POST['name']."::".
$_POST['pass']."::".
$_POST['email']."::".
$_POST['url']."\r\n";
fwrite($fd, $str);
fclose($fd);
//Осуществляем перезагрузку страницы
//чтобы сбросить POST-данные
echo "<html><head><META HTTP-EQUIV='Refresh' CONTENT='0; URL=$_SERVER[PHP_SELF]'></head></html>"
Итог работы: не создаётся файл и вот в этом месте происходит постоянно остановка exit('Поле ИМЯ не заполнено');
и ещё 1 вопрос. как сделать, чтобы до нажатия кнопки "Зарегестрировать" не выводились сообщения и том что
Notice: Undefined index: name in C:\wamp\www\registration.php on line 18
Notice: Undefined index: pass in C:\wamp\www\registration.php on line 19
Notice: Undefined index: pass_again in C:\wamp\www\registration.php on line 20
18, 19 и 20 линии - это
Код:
$_POST['name'] = trim($_POST['name']);
$_POST['pass'] = trim($_POST['pass']);
$_POST['pass_again'] = trim($_POST['pass_again']);
?>