вот форма регистрации
<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."';");просто необходимо занести в этот запрос 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(); |
первое понятно а вот второе можно поподробней разобрать?
Спустя 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);");Если поле `id` в таблице `users` является автоинкрементным, то при добавлении нового значения в таблицу, значение этого автоинкрементного поля можно получить через mysql_insert_id()
$userid = 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 инъекция тут обеспечена!!
Пиши правильно!! А то начинающие зайдут, увидят, накопируют, а потом жаловаться будут
Пиши правильно!! А то начинающие зайдут, увидят, накопируют, а потом жаловаться будут
Спустя 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:
тема ваша кому она ещё будет нужна кроме вас???
тут некто никому не обязан или читай или жди или ищи кто тебе это сделает но уже .как сказать за вашу благодарность уже в чем-то твердом
Свернутый текст
вообще пора научиться уважать отвечающих ,
пишите код читабнльней а то так в строчку кому это надо разбираться в подобной строке выше
пишите в столбик и это тоже относиться к стилю кодированию
Спустя 7 минут, 19 секунд (11.08.2011 - 10:23) shvedsd написал(а):
Цитата (YVSIK @ 11.08.2011 - 07:16) |
тема ваша кому она ещё будет нужна кроме вас??? |
Тема нужна будет всем у кого буду вопросы с регистрацией и авторизайцие тут можно будет найти полноценный код регистрации авторизации если мне поможете
Спустя 6 минут, 57 секунд (11.08.2011 - 10:30) YVSIK написал(а):
Цитата |
Тема нужна будет всем у кого буду вопросы с регистрацией и авторизайцие тут можно будет найти полноценный код регистрации авторизации если мне поможете |
изучай и подобного тут полным полно учись не стесняться делать поиск
главный пункт правил форума и его пока никто не отменял
Спустя 4 часа, 48 минут, 34 секунды (11.08.2011 - 15:19) shvedsd написал(а):
Благодарю
Спустя 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
Это же не выставочный скрипт Тут указывали ошибки чужого автора
Это же не выставочный скрипт Тут указывали ошибки чужого автора
Спустя 10 минут, 19 секунд (21.08.2011 - 23:29) Deathing написал(а):
inpost
а ясно . Фак печаль ..
а ясно . Фак печаль ..