Показать сообщение отдельно
Старый 26.01.2007, 16:24     # 110
нак
Member
 
Аватар для нак
 
Регистрация: 12.02.2003
Адрес: сочи
Сообщения: 370

нак Известность не заставит себя ждатьнак Известность не заставит себя ждать
Помогите мне доделать файл регистрации. Создал код заполнения формы по логину паролю и имя\отчество. Создал базу для прописки юзера.
Файл регистрации работает при отправке зарегистрированого пользователя в базу нормально. Все добавляется без проблем.
Потом решил добавить функцию проверки на свободность имя пользователя, чтобы если есть пользователь с таким именем то выдаст ошибку что есть такой пользователь и вернется обратно в форму. Вот на этом у меня заминка не могу нормально написать проверку. Помогите мне разобраться в этом.

Код формы регистрации с обработкой:

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">&nbsp;</td>
    <td width="52%">&nbsp;</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">&nbsp;</td>
    <td>&nbsp;</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">&nbsp;</td>
    <td>&nbsp;</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">&nbsp;</td>
    <td>&nbsp;</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` (
  `
idint(11NOT NULL auto_increment,
  `
loginvarchar(15NOT NULL,
  `
passvarchar(10NOT NULL,
  `
firstnamevarchar(126NOT NULL,
  
PRIMARY KEY  (`id`)
ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=10 ;

-- 
-- 
Дамп данных таблицы `user`
-- 
нак вне форума