|
|
|
| Подскажите как проверить существует ли такой логин в базе данных? Если существует вывести $log на этой же странице и не регистрировать пользователя, а если не существует то зарегистрировать и занести в базу данных.
Проблема в том если логин существует он выводит $log, но и регистрирует пользователя...
<?
$result = mysql_query("SELECT user_id, login FROM users WHERE user_id<>'none'");
while ($row = mysql_fetch_row($result))
if ($login == $row[1])
{
$log = '<font face="Verdana" color="red" size="2"><b>существует</b></font>';
}
elseif ($register)
{
$pwhash = sha1($pass);
$query = mysql_query("INSERT INTO users (login, pass) VALUES ('$login', '$pwhash')");
$reg = "<font face='Verdana' color='green' size='2'><b>Вы успешно зарегистрировали пользователя!</b></font>";
}
?>
|
| |
|
|
|
|
|
|
|
для: aleksej_sumarok
(19.09.2008 в 19:24)
| | И чему у вас равно $login, не видно чтобы оно определялось где-то. | |
|
|
|
|
|
|
|
для: aleksej_sumarok
(19.09.2008 в 19:24)
| |
<?
$result = mysql_query("SELECT user_id, login FROM users WHERE user_id<>'none'");
while ($row = mysql_fetch_row($result))
if ($login == $row[1])
{
$log = '<font face="Verdana" color="red" size="2"><b>существует</b></font>';
} else {
$pwhash = sha1($pass);
$query = mysql_query("INSERT INTO users (login, pass) VALUES ('$login', '$pwhash')");
$reg = "<font face='Verdana' color='green' size='2'><b>Вы успешно зарегистрировали пользователя!</b></font>";
}
?>
|
-- SIM5 - Логин у него в $row[1] -- | |
|
|
|
|
|
|
|
для: dima_s_d_s
(19.09.2008 в 19:39)
| | Вы только дуру не городите. Я вижу, что сравнивается $row[1] с $login, значение которого я не вижу чтобы определялось где-то ранее. | |
|
|
|
|
|
|
|
для: sim5
(19.09.2008 в 19:41)
| | А зачем его видеть?
Был четко поставленный вопрос, и из данного вопроса, и дополнения к вопросу было видно, что в коде есть ошибка в логике выполнения данного скрипта. | |
|
|
|
|
|
|
|
для: dima_s_d_s
(19.09.2008 в 19:48)
| | Уваважаемый, товарищ проверяет две переменные, бог знает какие, о которых я спрашиваю. И не факт, что они равны тому, с чем он их сравнивает. Вы лишь изменили условие else вот и все. | |
|
|
|
|
|
|
|
для: sim5
(19.09.2008 в 19:56)
| | Не вижу смысла что-то доказывать, факт остаётся фактом. | |
|
|
|
|
|
|
|
для: dima_s_d_s
(19.09.2008 в 20:01)
| | Факт чего? Автор еще хочет сделать проверку на пароль, это раз. Два, если мне надо проверить существует ли такой юзер по логину и паролю, то я и сделаю запрос на единственного юзера, а не буду получать весь список юзеров и проверять потом. Если вам ясно что хочет автор, я не спорю. А я же спрашиваю просто, мне охота узнать. Вопросы есть? | |
|
|
|
|
|
|
|
для: sim5
(19.09.2008 в 20:09)
| | Вот если сделать такой пример всё работает отлично, а мне надо сравнить $login с $row[1], а не с 'admin'
[
<?
if ($login == 'admin')
{
$log = '<font face="Verdana" color="red" size="2"><b>существует</b></font>';
}
elseif ($register)
{
$pwhash = sha1($pass);
$query = mysql_query("INSERT INTO users (login, pass) VALUES ('$login', '$pwhash')");
$reg = "<font face='Verdana' color='green' size='2'><b>Вы успешно зарегистрировали пользователя!</b></font>";
}
?>
|
| |
|
|
|
|
|
|
|
для: aleksej_sumarok
(19.09.2008 в 21:23)
| | Я не могу понять, зачем вы получаете весь список юзеров, вместо того чтобы проверить по логину и паролю - есть ли такой в базе и проверить результат запроса?
PS. Кстати, пароль в базе лучше держать в виде хеша, а логин проверять на допустимые символы. Вы же не проверив пихаете так в базу, а вот потом, при запросе к базе, может произойти пренеприятное. | |
|
|
|
|
|
|
|
для: sim5
(19.09.2008 в 21:24)
| | Ну вот я не знаю как это сделать.... Поэтому пишу! | |
|
|
|
|
|
|
|
для: aleksej_sumarok
(19.09.2008 в 21:40)
| |
SELECT user_id, login FROM users WHERE user_id = запрашиваему логину AND ...
вот тут должно быть поле пароля равное md5(пароль),
но его я в вашей таблице не вижу.
|
Ан нет, при вставке вы его указываете. Все, далее вам помогут как, а у меня уже глаза на лбу :) | |
|
|
|
|
|
|
|
для: sim5
(19.09.2008 в 21:46)
| | При чём здесь Md5? Вроде простой вопрос, а ответа толкого до сих пор не услышал..... :) | |
|
|
|
|
|
|
|
для: aleksej_sumarok
(19.09.2008 в 22:08)
| | Уважаемый, вы пишете вот это:
"INSERT INTO users (login, pass) VALUES ('$login', '$pwhash')"
Более ничего не видно к сожалению. Поэтому вопрос: вы проверяете то, что вам вводят в качестве логина и пароля перед занесением в базу? Как вы храните пароль в базе? | |
|
|
|
|
|
|
|
для: sim5
(20.09.2008 в 07:34)
| | Prichjom zdesj parolj zabudte pro nego, mne nuzno proveritj tolko login gde pri registracii vvodit polzovatelj v tekstovoe pole. $login = $_POST('login') | |
|
|
|
|
|
|
|
для: aleksej_sumarok
(20.09.2008 в 14:40)
| | вот этой строки:
$login = $_POST('login')
в коде , который Вы привели, нигде не наблюдалось. | |
|
|
|
|
|
|
|
для: Trianon
(20.09.2008 в 14:59)
| | Ja dumal eto mozno dogadatsja jesli ja napisal chto eto registracija polzovatelja, znachit i jestj tekstovoe pole | |
|
|
|
|
|
|
|
для: aleksej_sumarok
(20.09.2008 в 15:42)
| | а по-русски? | |
|
|
|
|
|
|
|
для: Trianon
(20.09.2008 в 15:43)
| | Ja pishu s mobilnika u menja netu russkix bukv | |
|
|
|
|
|
|
|
для: Trianon
(20.09.2008 в 15:43)
| | Ja pishu s mobilnika u menja netu russkix bukv | |
|
|
|
|
|
|
|
для: aleksej_sumarok
(20.09.2008 в 18:20)
| | >Подскажите как проверить существует ли такой логин в базе данных?
может быть так :
<?php
$query = "SELECT (*) FROM `users` WHERE `login` = ".$login;
$usr = mysql_query($query);
if(!$usr) exit("Ошибка - ".mysql_error());
$number = mysql_result($usr, 0);
if($number > 0) exit("Такое имя уже есть");
//иначе регистрируем
?>
|
| |
|
|
|
|
|
|
|
для: mehelson
(20.09.2008 в 20:33)
| | Браво! :)
А что это за зверь такой (*) ? | |
|
|
|
|
|
|
|
для: Trianon
(20.09.2008 в 20:52)
| | :) опечатка
$query = "SELECT COUNT(*) FROM `users` WHERE `login` = ".$login;
|
| |
|
|
|
|
|
|
|
для: mehelson
(20.09.2008 в 21:07)
| | В MySQL строки обрамляются апострофами или кавычками... | |
|
|
|
|
|
|
|
для: mehelson
(20.09.2008 в 21:07)
| |
$query = "SELECT COUNT(*) FROM `users` WHERE `login` = '$login'";
|
| |
|
|
|
|
|
|
|
для: Mehelson
(20.09.2008 в 22:37)
| | Еще в MySQL существует экранирование спец. символов для правильного формирования литеральной константы. | |
|
|
|