Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: регистрация
 
 автор: Zew   (19.09.2005 в 15:02)   письмо автору
 
 

Как сделать так, чтобы при регистрации юзеры не могли зарегистрироваться под тем же ником, который уже существует в базе?

И еще, я пыталась сделать так, чтобы нельзя было указывать в пароль и ник всякие спецсимволы, ну кроме отдельных, относительно безопастных и часто используемых в никах, но почему-то все равно они все благополучно записываются в базу, правда при авторизации не срабатывают. *_*


<?
session_start
();
include(
"auth.php");
include(
'db_main.php');

$action $_GET[action];

//Если отправлена форма регистрации.
if ($action == 'reg'){
mysql_query("select name from users");
$name_r $_POST[name_r];
$pass_r $_POST[pass_r];
$pass2_r $_POST[pass2_r];
$rules $_POST[rules];
//Убираем все лишнее
$name_r htmlspecialchars($name_r);
$pass_r htmlspecialchars($pass_r);
$pass2_r htmlspecialchars($pass2_r);
$pass_r substr($pass_r035);
$name_r substr($name_r015);
$name_r strip_tags($name_r);
$pass_r strip_tags($pass_r);
$pass2_r strip_tags($pass2_r);
$name_r trim($name_r);
$pass_r trim($pass_r);
$pass2_r trim($pass2_r);
//Проверяем на заполненность полей
if(!empty($name_r) && !empty($pass_r) && !empty($pass2_r)){
//Проверяем на согласие с правилами
if($rules == "rules"){
//На совпадение паролей
if ($pass2_r == $pass_r){
//Регистрация
$query "insert into users (name, pass) values ('$name_r', '$pass_r')";
mysql_query($query);
header("Location: error.php?error=reg");
//Регистрация (конец)
}else{header("Location: error.php?error=pass");}
}else{
header("Location: error.php?error=rules");}
}else{
header("Location: error.php?error=empty");}
}
//Если отправлена форма регистрации (конец)


//Иначе выводим форму регистрации
else{
include(
'diz1.php'); ?>
<center><p class="h1">Регистрация</p><br>
<hr color=#cc0000>
<div align="LEFT"><p сlass=h1>Правила сайта</p> ...............</div>
<hr color=#cc0000><br>
<form name="reg" method="post" action="reg.php?action=reg">
<table width="100%" border="0" cellspacing="0" cellpadding="5"><tr>
<td align="right" valign="top">Имя:</td>
<td align="left" valign="top"><input type="text" name="name_r" title=""></td></tr><tr>
<td align="right" valign="top">Пароль:</td>
<td align="left" valign="top"><input type="text" name="pass_r"></td></tr><tr>
<td align="right" valign="top">Пароль еще раз:</td>
<td align="left" valign="top"><input type="text" name="pass2_r"></td></tr><tr>
<td width="200" align="right" valign="top"><input type="submit" name="Submit" class="butt" value="Submit"></td>
<td align="left" valign="top"><input type="checkbox" name="rules" value="rules">
Я согласен(а) с правилами.</td>
</tr></table></form>
<?
include('diz2.php');}
//Выводим форму регистрации (конец)
?>

   
 
 автор: Artemy   (19.09.2005 в 18:26)   письмо автору
 
   для: Zew   (19.09.2005 в 15:02)
 

>Как сделать так, чтобы при регистрации юзеры не могли зарегистрироваться под тем же ником, который уже существует в базе?

Делать запрос к БД на наличие такого имени, если такое имеется, то выводить ошибку!
<?PHP
 
if(@mysql_result(@mysql_query("SELECT COUNT(id) FROM users WHERE name = '".$name."'"),0)>0)
   {
   exit(
"Ошибка! Пользователь с таким именем уже существует!");
   }
?>


>И еще, я пыталась сделать так, чтобы нельзя было указывать в пароль и ник всякие спецсимволы, ну кроме отдельных, относительно безопастных и часто используемых в никах, но почему-то все равно они все благополучно записываются в базу, правда при авторизации не срабатывают. *_*
Пускай пароль будет какой угодно, иначе для пользователя возникнет критическая ошибка! :-))

   
 
 автор: Zew   (19.09.2005 в 21:17)   письмо автору
 
   для: Artemy   (19.09.2005 в 18:26)
 

Спасибо, работает. =)
ЗЫ: Кстати, всегда было интересно, для чего в пхп применяется знак "@", как например в вышеприведенном примере?

   
 
 автор: Artemy   (19.09.2005 в 21:36)   письмо автору
 
   для: Zew   (19.09.2005 в 21:17)
 

Знак @ отменяет вывод ошибки!

   
 
 автор: cheops   (20.09.2005 в 01:09)   письмо автору
 
   для: Artemy   (19.09.2005 в 21:36)
 

Подробнее можно почитать в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4389

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования