[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка логина/пароля
azarat
есть простейший код проверки логина


if($_POST['submit']) {
$log = $_POST['log'];
$db = @mysql_connect("localhost","root","");
mysql_select_db("example1",$db);
$result = mysql_query("SELECT `id` FROM `users` WHERE log='".$_POST['log']."'");
if($result){echo 'ок ';} else {echo 'error ';}
}

при этом он всегда выдает "ок", а мне надо чтобы он это выдавал только если существует вводимый логин. единственый логин "admin".
З.Ы. приколы начинаются с $result.



Спустя 12 минут, 52 секунды (27.04.2011 - 21:45) Игорь_Vasinsky написал(а):
Цитата
З.Ы. приколы начинаются с $result.

З.Ы. приколы начиютнаются когда люди не уважают других и ленятся использовать BB-теги для оформления своего сообщения.

Цитата
$result = mysql_query("SELECT `id` FROM `users` WHERE log='".$_POST['log']."'");


может вот так:

$result = mysql_query("SELECT * FROM `users` WHERE log='".$_POST['log']."'");


будите так запросы в БД посылать - откроете свою БД для всех.

Безопасность учитывайте. SQL - инекции....

Спустя 9 минут, 38 секунд (27.04.2011 - 21:55) Guest написал(а):
Игорь_Vasinsky
Зачем вытаскивать из базы всё, если нужно только id ?

А в остальном согласен.

azarat

if (mysql_num_rows($result) == 0 ) - user not found
else user found

Спустя 5 минут, 1 секунда (27.04.2011 - 22:00) Игорь_Vasinsky написал(а):
Цитата
Зачем вытаскивать из базы всё, если нужно только id ?

кто сказал?
сверка идёт по принятому логину (голому) а запрос в поле id
в чём логика.... хз

и естес-но
Цитата
if (mysql_num_rows($result) == 0 ) - user not found
else user found

Спустя 6 минут, 36 секунд (27.04.2011 - 22:06) Гость_liw написал(а):
Я говорил про: SELECT * FROM

Как понять в чём логика? Эта проверка на существование логина, - если такой уже есть то поидее там должен быть уведомлён пользователь об этом, и отказано в регистрации (это как вариант).
Ну и что что в запросе поле id вытаскивает? - кому от этого плохо?
непонятно зачем тащить все столбцы? а если их там 150 штук. - опять же и при таком раскладе никому хуже не будет, но как то некрасиво это то ли.



Спустя 15 часов, 44 минуты, 10 секунд (28.04.2011 - 13:50) azarat написал(а):
Ну в принципия думал это использовать при регистрации, при поиске по сайту и при авторизации. хотя я читал что для автоизации используются сеансы, но я не совсем понимаю зачем они ;) .

З.Ы. код Vasinsky заработал как надо, но только если заменить 0 на 1 <_< .
if (mysql_num_rows($result) == 1 ) {echo 'user not found';} else {echo 'user found';}


а насчет оформления учту, это мой первый форум в котором учавствую :)

Спустя 8 дней, 1 час, 54 минуты, 51 секунда (6.05.2011 - 15:45) Niksik написал(а):

$db = @mysql_connect("localhost","root","password");
mysql_select_db("example1",$db);
$login = htmlspecialchars($_POST['log']);
$result = mysql_query("SELECT * FROM `users` WHERE `log`='.$login.'");
if (mysql_num_rows($result) == 1 )
{
echo 'Привет';
}
else
{
echo 'Пока';
}

Теги нужну вырезать ато плохо будет.

Спустя 41 минута, 34 секунды (6.05.2011 - 16:27) ИНСИ написал(а):
Цитата
$result = mysql_query("SELECT * FROM `users` WHERE `log`='.$login.'");

Niksik неверно написал. В любом случае не будет находить никого. Ты точки зря поставил.

А автору, то вот, с защитой проверка:

$db = mysql_connect("localhost","root","password") or die(mysql_error());
mysql_select_db("example1",$db) or die(mysql_error());

function safesql($source) {
$source = trim($source);
if(get_magic_quotes_gpc()) $source = stripslashes($source);
return mysql_real_escape_string($source);
}

$result = mysql_query("
SELECT *
FROM `users`
WHERE `log` = '"
.safesql($_POST['log'])."'
LIMIT 1
"
) or die(mysql_error());

if(mysql_num_rows($result) > 0) {
echo 'Привет';
} else {
echo 'Пока';
}


Спустя 3 дня, 22 часа, 12 минут, 46 секунд (10.05.2011 - 14:40) Niksik написал(а):
Ну ты не прав я пользуюсь и всё норм! wink.gif
Быстрый ответ:

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