[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: [FAQ]Регистрации пользователей, сохранение в БД
Страницы: 1, 2, 3
AllesKlar
Цитата (exotica @ 25.02.2014 - 13:36)
Цитата
У тебя нет проверки на существование полльзователя в базе (логин уже занят)
Думаю, это один из основных моментов, который должен присутсвовать.

принудительно опустил его за счет ID Auto_incr , но вот только SQL запрос создания таблицы не приложил, поправлю.

ID - это ID
А проверять надо наличие в базе записи с полем name равным $name, иначе создастся 2 пользователя с разными ID, но одинаковими name.

Или я не понимаю магии твоих настроек в базе?
Ты сделал поле name уникальным? Но как тогда ты корректно обработаешь ошибку, что логин уже занят? По коду ошибки? Но это уже не простой путь для новичка.

_____________
[продано копирайтерам]
exotica
AllesKlar уникален ID , а name может быть и одинаковым, мне нужно было сократить процесс регистрации до сколько позволяла простота процесса.

Я не стал вешать сессии, возврат полей, массив ошибок, проверку занятости и т.д. так как все это
Цитата
Но это уже не простой путь для новичка.


даже одной страницей как это сделать не стал приводить примера, потому что это может вызвать путаницу в голове у тех у кого про php там еще ничего толком нету.

Когда человек разберет это и поймет что у него никак не разобраться кто есть кто, он задумается как сделать проверку на name в своей базе.

_____________
[FAQ]Регистрации пользователей, сохранение в БД
---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
zelenuy
rolleyes.gif
Да регистрация это уже далеко не простое задание для новичков, тут уже идет БД плюс надо уметь фильтровать данные, делать проверки всякие разные, но обычно в первый раз это показывают без всяких лишних движений, меня лично с начало учили делать регистрацию не с бд а с простыми файлами так как до базы мне было еще далеко )
Valick
Свернутый текст
<?php
//echo '<pre>'; print_r($_POST); echo '</pre>';

// Функция хеширования пароля

function my_crypt($value){
$value = 'yuui345834ui8934r45894u5845'.$value;
return md5($value);
}

$registr = false;

if(isset($_POST['go'])){
// Принимаем значения полей формы
$field = array('username','userpass','againpass');
foreach($field as $key=>$value){
$$value = (array_key_exists($value,$_POST))? trim($_POST["$value"]) : '';
}

// Проверяем значения полей формы
if(empty($username)) $err[] = 'Введите логин.';
if(empty($userpass)) $err[] = 'Введите пароль.';
if(empty($againpass)) $err[] = 'Введите подтверждение пароля.';
if($userpass <> $againpass) $err[] = 'Пароли не совпадают.';
if(!isset($err)){
include_once('connect.php');
$username = mysql_real_escape_string($username);
$query = "SELECT `id` FROM `users` WHERE `login`='".$username."'";
$res = mysql_query($query) or die(mysql_error());
if($res){
if(mysql_num_rows($res) > 0){
$err[] = 'Данный логин уже занят.';
}else{
$userpass = my_crypt($userpass);
$query = "INSERT INTO `users`(`login`,`password`) VALUE('$username','$userpass')";
$res = mysql_query($query) or die(mysql_error());
if($id = mysql_insert_id()){
$registr = true;
}else{
$err[] = "Ошибка регистрации. Попробуйте еще раз.";
}
}
}
}

if(isset($err)){
$error = '<ul><li>'.implode('</li><li>',$err).'</li></ul>';
}
}

?>
<!DOCTYPE html>
<
html>
<
head>
<
meta charset="utf-8">
<
title>Регистрация пользователя</title>
<
style>
section {
width: 300px;
margin: auto;
}
.error {
color: red;
}
</style>
</
head>
<
body>
<
section>
<?php
if($registr){
?>
<div class="regon">Поздравляем с успешной регистрацией на нашем сайте.</div>
<?php
}else{
?>
<div class="error"><?=(isset($error))?$error:'';?></div>
<
form name="registration" action="registration.php" method="POST">
<
table>
<
tr>
<
td>Введите имя пользователя:</td>
<
td><input name="username" type="text" value="<?=htmlspecialchars($username)?>"></td>
</
tr>
<
tr>
<
td>Введите пароль:</td>
<
td><input name="userpass" type="password" value=""></td>
</
tr>
<
tr>
<
td>Подтвердите пароль:</td>
<
td><input name="againpass" type="password" value=""></td>
</
tr>
<
tr>
<
td><input name="clear" type="reset" value=" Сброс "></td>
<
td align="right"><input name="go" type="submit" value=" Регистрация "></td>
</
tr>
</
table>
</
form>
<?php
}
?>
</section>
</
body>
</
html>


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

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