[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регистрация и авторизация
shvedsd
По форуму искал ничего конкретного не нашел. Хочу с вашей помощью написать код удобной и безопасной регистрации пользователя на сайте, чтобы потом тем, кто сталкнется с этим вопросом, помогла эта тема.
вот форма регистрации
<Form action="register2.php" method="POST">
<table
id="tab_three">
<tr>
<td
colspan="2" align="center">Обязательные данные</td>
<td></td>
<td
colspan="2" align="center">(не обязательно)</td>
</tr>
<tr>
<td
width="150">Ник:</td>
<td><input
type="text" name="reguser"></td>
<td
width="100"></td>
<td
width="150"> Реальное имя:</td>
<td><input
type="text" name="name"></td>
</tr>
<tr>
<td>
Пароль:</td>
<td><input
type="password" name="regpass1"></td>
<td
width="100"></td>
<td
width="150">Ник в чате:</td>
<td><input
type="text" name="nick"></td>
</tr>
<tr>
<td>
Еще раз пароль:</td>
<td><input
type="password" name="regpass2"></td>
<td
width="100"></td>
<td
width="150">Возраст:</td>
<td><input
type="text" name="age" size="1"></td>
</tr>
<tr>
<td></td>
<td></td>
<td
width="100"></td>
<td
width="150">Пол:</td>
<td><select
name="gender">
<option>
муж
<option>жен
</select></td>
</tr>
<tr>
<td></td>
<td></td>
<td
width="100"><input type="submit" value="Зарегестрироватся "></td>
<td
width="150"></td>
<td></td>
</tr>
</table>
</Form>


обработчик формы

$gender=$_POST['gender'];
$name=$_POST['name'];
$age=$_POST['age'];
$nick=$_POST['nick'];

if (!$nick) $nick=$_POST['reguser'];

echo "<table bgcolor=#f1f1cc width=100%><tr><td>";
//тут идёт проверка все ли обезятельные поля введены
if (!$_POST['reguser']or!$_POST['regpass1']or!$_POST['regpass2']) {
//если нет выдаём ошибку
echo "зарегся <a href=\"register1.php\">тут</a>, А то че не вписал данные все <br>";

}
//если все правильно продолжаем
else {

$pass1=$_POST['regpass1'];
$pass2=$_POST['regpass2'];
$user=$_POST['reguser'];

//тут проверка совподают ли пароли
if ($pass1 <> $pass2) {
//если нет то ошибка
echo "пароль на совпадает зарегся <a href=\"register1.php\">тут</a>заново";
}
//если всё нормально продолжаем
else {
//идёт проверка есть ли уже такой логин в базе
$res=mysql_fetch_array(mysql_query("select id from users where user='".$user."'"));
if ($res) {
//если есть то выдаём ошибку
echo "Ваш ник ".$user." уже в базе данных<br>";
}
//если нет продолжаем
else {

$pass3=sha1(md5($pass1)."Cool");
//тут запрещаем регистрацию с знаками на лолиг и пароль вроде
if(preg_match("#^[A-Za-z0-9]+$#iu", $user)) {
//если знаков нет занносим данные в базу
mysql_query("INSERT INTO users (user,password,rank, numfoto, name, nick, age, gender, style) VALUES ('".$user."','".$pass3."',5,1,'".$name."','".$nick."','".$age."','".$gender."',1);");
}
//если знаки есть то выдаём ошибку
else
exit('Логин содержит запрещенные символы');

//пишем что вы зарегистрировались
echo "Привет тебе, ".$user."! ты записан в нашу базу данных <br>";
echo "настоятельно рекомендуем проверить свой <a href=infome.php>профиль</a>!!!";

echo "<br><a href=\"index.php\">главная</a>";
$res=mysql_fetch_array(mysql_query("select id from users where user='".$user."'"));
$id=$res['id'];
setcookie('cckbest',($id*6-4)*6,time()+60*60*24*365);
$_SESSION['user']=$user;

}
}
}



Жду советов по продолжению и улучшению кода.



Спустя 1 час, 2 минуты, 23 секунды (8.08.2011 - 13:29) linker написал(а):
Всё это
if ($name) mysql_query("update users set name='$name'where user='".$user."';");
if ($nick) mysql_query("update users set nick='$nick' where user='".$user."';");
if ($age) mysql_query("update users set age='$age' where user='".$user."';");
if ($gender) mysql_query("update users set gender='$gender' where user='".$user."';");
mysql_query("update users set style='1' where user='".$user."';");
просто необходимо занести в этот запрос
mysql_query("INSERT INTO users (user,password,rank, numfoto) VALUES ('".$user."','".$pass3."',5,1);");
А вместо этого
$res=mysql_fetch_array(mysql_query("select id from users where user='".$user."'"));
использовать AUTO_INCREMENT и mysql_insert_id();

Спустя 1 час, 55 минут, 51 секунда (8.08.2011 - 15:25) shvedsd написал(а):
Цитата (linker @ 8.08.2011 - 10:29)
Всё это
if ($name) mysql_query("update users set name='$name'where user='".$user."';");
if ($nick) mysql_query("update users set nick='$nick' where user='".$user."';");
if ($age) mysql_query("update users set age='$age' where user='".$user."';");
if ($gender) mysql_query("update users set gender='$gender' where user='".$user."';");
mysql_query("update users set style='1' where user='".$user."';");
просто необходимо занести в этот запрос
mysql_query("INSERT INTO users (user,password,rank, numfoto) VALUES ('".$user."','".$pass3."',5,1);");
А вместо этого
$res=mysql_fetch_array(mysql_query("select id from users where user='".$user."'"));
использовать AUTO_INCREMENT и mysql_insert_id();

первое понятно а вот второе можно поподробней разобрать? smile.gif

Спустя 3 минуты, 9 секунд (8.08.2011 - 15:28) olegod написал(а):
del

Спустя 1 час, 43 минуты, 10 секунд (8.08.2011 - 17:11) shvedsd написал(а):
отредактировал первый пост
если смотреть в плане безопасности то скрипт совсем сырой

Спустя 14 часов, 28 минут, 48 секунд (9.08.2011 - 07:40) linker написал(а):
mysql_query("INSERT INTO users (user,password,rank, numfoto) VALUES ('".$user."','".$pass3."',5,1);");
$userid = mysql_insert_id();
Если поле `id` в таблице `users` является автоинкрементным, то при добавлении нового значения в таблицу, значение этого автоинкрементного поля можно получить через mysql_insert_id()

Спустя 1 час, 52 минуты, 14 секунд (9.08.2011 - 09:32) shvedsd написал(а):
то есть это можно использовать и тут?
$res=mysql_fetch_array(mysql_query("select id from users where user='".$user."'"));

и с помощью его выводить данные которые были занесены ? я правильно понял или всё таки нет

Спустя 48 минут, 42 секунды (9.08.2011 - 10:21) linker написал(а):
Это
$res=mysql_fetch_array(mysql_query("select id from users where user='".$user."'"));
в топку, вместо него
$id = mysql_insert_id();

Спустя 4 часа, 1 минута, 6 секунд (9.08.2011 - 14:22) HAKIM написал(а):
аха, насчёт безопастности , то sql инъекция и xss инъекция тут обеспечена!!
Пиши правильно!! А то начинающие зайдут, увидят, накопируют, а потом жаловаться будут biggrin.gif

Спустя 18 часов, 22 минуты, 41 секунда (10.08.2011 - 08:44) shvedsd написал(а):
Хочу с вашей помощью написать код удобной и безопасной регистрации пользователя на сайте.
Сильно не ругайте, написал только то, в чем более-менее уверен.

Спустя 1 день, 1 час, 10 минут, 58 секунд (11.08.2011 - 09:55) shvedsd написал(а):
если тема некому не нужна тогда давайте закроем её потому что её поддерживает один человек

Спустя 20 минут, 29 секунд (11.08.2011 - 10:16) YVSIK написал(а):
//если знаков нет занносим данные в базу
mysql_query("INSERT INTO users (user,password,rank, numfoto, name, nick, age, gender, style) VALUES ('".$user."','".$pass3."',5,1,'".$name."','".$nick."','".$age."','".$gender."',1);");

вот ваш код собственно и человек вам ясно отписал что надо делать
Цитата
аха, насчёт безопастности , то sql инъекция и xss инъекция тут обеспечена!!
Пиши правильно!! А то начинающие зайдут, увидят, накопируют, а потом жаловаться будут

пора читать про sql иньекции у твина на ирбис )))
а про тему вопрос звучит достаточно странно ? :blink:
тема ваша кому она ещё будет нужна кроме вас???
тут некто никому не обязан или читай или жди или ищи кто тебе это сделает но уже .как сказать за вашу благодарность уже в чем-то твердом user posted image
Свернутый текст
вообще пора научиться уважать отвечающих ,

пишите код читабнльней а то так в строчку кому это надо разбираться в подобной строке выше
пишите в столбик и это тоже относиться к стилю кодированию


Спустя 7 минут, 19 секунд (11.08.2011 - 10:23) shvedsd написал(а):
Цитата (YVSIK @ 11.08.2011 - 07:16)
тема ваша кому она ещё будет нужна кроме вас???

Тема нужна будет всем у кого буду вопросы с регистрацией и авторизайцие тут можно будет найти полноценный код регистрации авторизации если мне поможете

Спустя 6 минут, 57 секунд (11.08.2011 - 10:30) YVSIK написал(а):
Цитата
Тема нужна будет всем у кого буду вопросы с регистрацией и авторизайцие тут можно будет найти полноценный код регистрации авторизации если мне поможете


biggrin.gif
изучай и подобного тут полным полно учись не стесняться делать поиск
главный пункт правил форума и его пока никто не отменял cool.gif cool.gif biggrin.gif biggrin.gif

Спустя 4 часа, 48 минут, 34 секунды (11.08.2011 - 15:19) shvedsd написал(а):
Благодарю smile.gif

Спустя 2 дня, 5 часов, 4 минуты, 43 секунды (13.08.2011 - 20:23) olegod написал(а):
Нет, на самом деле, я считаю что тема очень полезная.

Спустя 8 дней, 1 час, 58 минут, 11 секунд (21.08.2011 - 22:22) Deathing написал(а):
вопрос в одном ,а где авторизация? Просто я как бы написал свой код , но он не совсем удачен...

Спустя 56 минут, 41 секунда (21.08.2011 - 23:18) inpost написал(а):
Deathing
Это же не выставочный скрипт smile.gif Тут указывали ошибки чужого автора smile.gif

Спустя 10 минут, 19 секунд (21.08.2011 - 23:29) Deathing написал(а):
inpost
а ясно . Фак печаль ..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.