<? $db=mysql_connect ("localhost","root",""); mysql_select_db ("test", $db); if (isset($_POST['login'])) {$login=$_POST['login']; if ($login=='') {unset($login);}} if (isset($_POST['pass'])) {$pass=$_POST['pass']; if ($pass=='') {unset($pass);}} if (isset($_POST['pass_2'])) {$pass_2=$_POST['pass_2']; if ($pass_2=='') {unset($pass_2);}} if (isset($_POST['email'])) {$email=$_POST['email']; if ($email=='') {unset($email);}} if (isset($login) && isset($pass) && isset($pass_2) && isset($email)) { $result=mysql_query ("INSERT INTO users SET login='$login', pass='$pass', email='$email'"); } if ($result == 'true') { echo "Поздравляем с регистрацией в новом мире"; } else { echo "Проверьте еще раз введенные данный вы что то пропустили <a href='reg.php'>Вернуться к форме</a>"; } ?>
Помогите с проверкой данных при регистрации
Автор темы: Zaraza, Ноя 20 2009 23:00
3 ответов в этой теме
#1
Опубликовано 20 Ноябрь 2009 - 23:00
Собственно ниже обработчик введенных данных в форме регистрации. Как сделать проверку идентичности $pass и $pass_2 и в случае если они не равны не проводить регистрацию и проверку на пустоту (т.е. если не заполнены поля при регистрации)
моя ася иногда я там буду - 199873062
#2
Опубликовано 20 Ноябрь 2009 - 23:13
<? $db=mysql_connect ("localhost","root",""); mysql_select_db ("test", $db); $errors = array(); if(empty($_POST['login'])) $errors[] = 'Вы не ввели имя'; if(empty($_POST['pass']) || empty($_POST['pass_2'])) $errors[] = 'Вы не ввели пароль или подтверждение'; if($_POST['pass'] != $_POST['pass_2']) $errors[] = 'Пароли не совпадают'; if(empty($_POST['email'])) $errors[] = 'Вы не ввели email'; if (empty($errors)) { $result=mysql_query ('INSERT INTO users SET login=\''.mysql_real_escape_string($login).'\', pass=\''.mysql_real_escape_string($pass).'\', email=\''.mysql_real_escape_string($email).'\''; // фильтруй данные, а то хакнут } if ($result) { echo "Поздравляем с регистрацией в новом мире"; } else { if(mysql_error()) echo mysql_error(); //debug, можешь убрать foreach($errors as $error) echo $error.'<br>'; echo '<a href="reg.php">Вернуться к форме</a>'; } ?>Не проверял.
#3
Опубликовано 12 Декабрь 2009 - 01:54
Вообще конечно такие проверки надо не забывать дублировать javascript'ом, да бы не нагружать сервер лишний раз да и пользователю сберечь нервы =)
P.S. Учитывая особенности этого форума хочу добавить, что дети из серии "даю, 100, ну ладно 150" восприниматься всерьез не будут.
ты такой глупенький, что это уже даже не смешно
#4
Опубликовано 12 Декабрь 2009 - 03:25
Серверу от таких проверок плохо не станет.
А если говорить об оптимизации, то вот вариант быстрее:
А если говорить об оптимизации, то вот вариант быстрее:
<?php $errors = array(); if(empty($_POST['login'])) $errors[] = 'Вы не ввели имя'; if(empty($_POST['pass']) || empty($_POST['pass_2'])) $errors[] = 'Вы не ввели пароль или подтверждение'; if($_POST['pass'] != $_POST['pass_2']) $errors[] = 'Пароли не совпадают'; if(empty($_POST['email'])) $errors[] = 'Вы не ввели email'; if (empty($errors)) { $db=mysql_connect ('localhost','root',''); mysql_select_db ('test', $db); $result=mysql_query ('INSERT INTO users SET login=\''.mysql_real_escape_string($login).'\', pass=\''.mysql_real_escape_string($pass).'\', email=\''.mysql_real_escape_string($email).'\''; // фильтруй данные, а то хакнут unset($errors,$_POST,$login,$pass,$email); } if ($result) { ?>Поздравляем с регистрацией в новом мире<?php unset($result,$errors); } else { if(mysql_error()) echo mysql_error(); //debug, можешь убрать foreach($errors as $error) echo $error.'<br>'; ?><a href="reg.php">Вернуться к форме</a><?php } ?>
Посетителей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных пользователей