[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не работает проверка логина
alex107
надо сделать что бы при регистрации в случаи наличия указанного логина скрипт выдавал ошибку...
написал код:
$login_bd = mysql_db_query("test","select login from users");
while($login_for_check = mysql_fetch_object($login_bd)) {if ($login_for_check == $login) $result = "Ошибка! Такой Логин уже используется, выберите другой.";}

но если указанный логин совпадает с тем что уже есть в БД, регистрация все равно происходит!!! и в БД заносятся 2 одинаковых логина...



Спустя 6 минут, 10 секунд (6.11.2010 - 12:26) Sanchopansa написал(а):
Ты получаешь данные с БД в виде объекта.. и сравниваешь объект со строкой
while($login_for_check = mysql_fetch_object($login_bd)) {if ($login_for_check == $login) $result = "Ошибка! Такой Логин уже используется, выберите другой.";}


короче правильно будет так:
while($login_for_check = mysql_fetch_object($login_bd)) {if ($login_for_check->login == $login) $result = "Ошибка! Такой Логин уже используется, выберите другой.";}


Короче после $login_for_check-> нужно указать имя поля таблицы БД которое ты хочешь сравнить/вывести

Спустя 4 минуты, 18 секунд (6.11.2010 - 12:31) alex107 написал(а):
написал так:
$login_bd = mysql_db_query("test","select login from users");
while($login_for_check = mysql_fetch_object($login_bd)) {if ($login_for_check->login == $login) $result = "Ошибка! Такой Логин уже используется, выберите другой.";}

все равно регистрирует.... ((

Спустя 21 минута, 57 секунд (6.11.2010 - 12:53) Sanchopansa написал(а):
можно весь код в студию.. а чувствую грабли не только тут

Спустя 3 минуты, 8 секунд (6.11.2010 - 12:56) alex107 написал(а):
<?
$name = $_POST['name'];
$login = $_POST['login'];
$email = $_POST['email'];
$pass = $_POST['pass'];
$rpass = $_POST['rpass'];
$host = "localhost";
$user = "root";
$pass_bd = "";

if (empty($name) or empty($login) or empty($email) or empty($pass) or empty($rpass)) {$result = "Ошибка! Все поля обязательны для заполнения!";}
elseif ($pass == $rpass) {
mysql_connect($host,$user,$pass_bd);

$email_bd = mysql_db_query("test","select email from users");
while($email_for_check = mysql_fetch_object($email_bd)) {if ($email_for_check->email == $email) $result = "Ошибка! Такой e-mail уже зарегистрирован!";}

$login_bd = mysql_db_query("test","select login from users");
while($login_for_check = mysql_fetch_object($login_bd)) {if ($login_for_check->login == $login) $result = "Ошибка! Такой Логин уже используется, выберите другой.";}

$sql = "INSERT INTO `users` (`id`, `name`, `pass`, `email`, `login`) VALUES ('', '$name', '$pass', '$email', '$login')";
mysql_db_query("test", $sql);
$result = "Вы успешно зарегистрированы!<p>Ваше имя: $name<br>Ваш логин: $login<br>Ваш e-mail: $email";
} else {$result = "Ошибка! Указанные пароли не совпадают!";}
echo $result;
?>

в целом скрипт работает, только e-mail и логин не проверяет

Спустя 9 минут, 55 секунд (6.11.2010 - 13:06) Sanchopansa написал(а):
Попробуй сейчас...
<?
$name = $_POST['name'];
$login = $_POST['login'];
$email = $_POST['email'];
$pass = $_POST['pass'];
$rpass = $_POST['rpass'];
$host = "localhost";
$user = "root";
$pass_bd = "";

if (empty($name) || empty($login) || empty($email) || empty($pass) || empty($rpass))
{
$result = "Ошибка! Все поля обязательны для заполнения!";
} elseif ($pass == $rpass)
{
mysql_connect($host,$user,$pass_bd);
$error = false;
$res = mysql_db_query("test","SELECT * FROM users");
while($row = mysql_fetch_object($res))
{
if ($row->email == $email)
{
$result = "Ошибка! Такой e-mail уже зарегистрирован!";
$error = true;
break;
}
if ($row->login == $login)
{
$result = "Ошибка! Такой Логин уже используется, выберите другой.";
$error = true;
break;
}
}


if (!$error)
{
$sql = "INSERT INTO `users` (`id`, `name`, `pass`, `email`, `login`) VALUES ('', '$name', '$pass', '$email', '$login')";
mysql_db_query("test", $sql);
$result = "Вы успешно зарегистрированы!<p>Ваше имя: $name<br>Ваш логин: $login<br>Ваш e-mail: $email";
}
}
else
{
$result = "Ошибка! Указанные пароли не совпадают!";
}
echo $result;
?>

Спустя 14 минут, 22 секунды (6.11.2010 - 13:20) alex107 написал(а):
работает! спасибо! )
Быстрый ответ:

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