Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Как лучше запрашивать


Автор: R.M. 4.9.2005, 00:34
Если в таблице MySQL есть скажем 2 поля
1 - логин админа
2 - пароль админа
Как при вводе логина\пароля в форму проверить праильно или нет введены логин\пароль?
Мне кажеца что через if ($login == "admin" && $password == "123") не безопасно да и не очень правильно при запросе из БД, или я ошибаюсь?

Автор: Irokez 4.9.2005, 00:37
получаешь логин, по логину получаешь пароль, сверяешь правильность введенных паролей и наличие такого логина в базе..

Автор: R.M. 4.9.2005, 01:48
Irokez

А какнить с небольшим примерчиком низя? а то я недавно мускул стал осваивать smile
smile

Автор: Mal Hack 4.9.2005, 09:22
Модератор: пользуйтесь поиском, подобные темы уже много раз обсуждались
Модератор: пользуйтесь нашим FAQ !!
http://vingrad.ru/PHP-ART-002849
там нету только BINARY при сравнении и mysql_real_escape_string не используется.

Автор: R.M. 4.9.2005, 12:19
Mal Hack


Цитата(Mal @ 4.9.2005, 10:22)
Модератор: пользуйтесь нашим FAQ !!


В вашем FAQ ошибок немеренно, причём вы - Mal Hack не отвечаете как их исправить

Автор: Trotil 4.9.2005, 13:54
Почему начальный пример - небезопасный?

Автор: PARROT 4.9.2005, 14:02
Цитата(Trotil @ 4.9.2005, 14:54)
Почему начальный пример - небезопасный?

Потому, что пароль в открытую хранить небезопасно.

Автор: -=Ustas=- 4.9.2005, 14:58
Блин, вот самый элементарный и простой способ, но гораздо лучше указанного выше! :
Код

// пускай будет login.html
<form name="FormName" action="auth.php" method="POST">
    <input name="login" type="text">
    <input name="password" type="text">
    <input type="submit" value="Auth">
</form>


Код

// пускай будет auth.php
<?php

$sql = "SELECT
            login,
            password
        FROM
            admin_table
        WHERE
            login = '".mysql_escape_string($_POST['login'])."'
        AND
            pawwsord = '".md5(mysql_escape_string($password))."'
        LIMIT 1"
$res = mysql_query($sql);
if (mysql_num_rows($res) <= 0) {
    echo "Fuck of!";
} else {
    echo "Здравствуйте товарищь админ";
    // и дальше пошли все необходимые действия
    ....
    ....
    ....
    ....
    ....
}

?>

и перед вставкой в БД записи, пароль надо md5-хешить.

Автор: R.M. 5.9.2005, 00:12
-=Ustas=-

Спасибо, именно это мне и нужно было

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)