Помогите мне доделать файл регистрации. Создал код заполнения формы по логину паролю и имя\отчество. Создал базу для прописки юзера.
Файл регистрации работает при отправке зарегистрированого пользователя в базу нормально. Все добавляется без проблем.
Потом решил добавить функцию проверки на свободность имя пользователя, чтобы если есть пользователь с таким именем то выдаст ошибку что есть такой пользователь и вернется обратно в форму. Вот на этом у меня заминка не могу нормально написать проверку. Помогите мне разобраться в этом.
Код формы регистрации с обработкой:
PHP код:
<?
include ("config.php");
$sm = '<INPUT TYPE="button" VALUE="Вернуться" onClick="history.back()">';
if ($_POST['sent']==1) {
$_POST['login'] = str_replace('~','',strip_tags(trim ($_POST['login'])));
$_POST['passw'] = str_replace('~','',strip_tags(trim ($_POST['passw'])));
$_POST['firstname'] = str_replace('~','',strip_tags(trim ($_POST['firstname'])));
if (!$_POST['login']) { echo "<br>Пожалуйста введите логин<br>"; unset ($_POST['sent']); echo $sm; exit;}
if (!$_POST['passw']) { echo "<br>Пожалуйста введите пароль<br>"; unset ($_POST['sent']); echo $sm; exit;}
if (!$_POST['firstname']) { echo "<br>Пожалуйста введите имя и отчество<br>"; unset ($_POST['sent']); echo $sm; exit;}
if(StrLen($_POST['passw'])<4) { echo "<br>Пароль должен содержать больше 4 символов</br>"; unset ($_POST['sent']); echo $sm; exit;}
//Выбор строк с таблицы с базы
$sql="select login from user where login = '$login'";
$result=mysql_query($sql,$db_conn);
// Проверка на свободность имя пользователя
if ($_POST['login']==$login)
{
$sql="insert into user (login, pass, firstname) values ('".$_POST[login]."','".$_POST[passw]."','".$_POST[firstname]."')";
$result=mysql_query($sql,$db_conn);
echo "Спасибо за регистрацию на сайте. Теперь Вы можете авторизоваться на сайте.<br>";
echo $sm;
}
else
{
echo "Извените но логин с таким именем $_POST[user] уже существует в базе. Вернитесь обратно и выбирите другое имя.";
echo $sm;
}
}
else
{
?>
<center><form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input name="sent" type="hidden" value=1 />
<table width="53%" border="0" cellspacing="0" cellpadding="0">
<tr>
<th colspan="2" align="center" scope="col"><h3>Регистрация пользователя </h3></th>
</tr>
<tr>
<td width="48%" align="center"> </td>
<td width="52%"> </td>
</tr>
<tr>
<td align="center"><strong>Ваш логин:</strong></td>
<td><input name="login" maxlength="15" type="text" size="20" value="<? echo $_POST['login']; ?>" /></td>
</tr>
<tr>
<td align="center"> </td>
<td> </td>
</tr>
<tr>
<td align="center"><strong>Ваш пароль:</strong></td>
<td><input name="passw" maxlength="10" type="password" size="20" value="<? echo $_POST['passw']; ?>" /></td>
</tr>
<tr>
<td align="center"> </td>
<td> </td>
</tr>
<tr>
<td align="center"><strong>Имя/Отчество:</strong></td>
<td><input name="firstname" type="text" value="<? echo $_POST['firstname']; ?>" /></td>
</tr>
<tr>
<td align="center"> </td>
<td> </td>
</tr>
<tr>
<td align="center"><input type="submit" value="Зарегится" /></td>
<td align="center"><input type="reset" value="Очистить" /></td>
</tr>
</table>
</form></center>
<?
}
?>
База данных:
PHP код:
--
-- Структура таблицы `user`
--
CREATE TABLE `user` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(15) NOT NULL,
`pass` varchar(10) NOT NULL,
`firstname` varchar(126) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=10 ;
--
-- Дамп данных таблицы `user`
--