|
|
|
| Доброго времяни суток. Лазил по вашему форуму и нашёл скрипт авторизации с использованием сессий.
<?
session_start();
//если нажали кнопку
if ($_POST[sub])
{
require_once("config.php");
//проверяем данные на sql-inj
$login = mysql_escape_string($_POST['login']);
$passw = mysql_escape_string($_POST['passw']);
$result = mysql_query("select * from users where login='$login'");
$data = mysql_fetch_assoc($result);
if (mysql_num_rows($result)>0)
{
if ($data['passw'] == $passw)
{
//устанавливаем sessie
$_SESSION['login'] = $data['login'];
$_SESSION['passw'] = $data['passw'];
echo "Доброго времяни суток ".$data['login']."!";
}
else echo "Не правильный пароль";
}
}
//если сессия заполнена
if ( (isset($_SESSION['login'])) && (isset($_SESSION['passw'])) )
{
require_once("config.php");
//находим в БД пользователя удовлетворяющего сессиям
$result = mysql_query("select * from users where login='".$_SESSION['login']."' AND passw='".$_SESSION['passw']."'");
//если такой пользователь существует
if (mysql_num_rows($result) == 1)
{
$data = mysql_fetch_assoc($result);
//выводим на экран логин юзера
echo "<p>Привет <b>".$data['login']."</b>!";
}
//если в БД нету такого пользователя то обнуляем кукисы и переходи к авторизации
else
{
echo "Пожалуйста, авторизуйтесь!";
unset($_SESSION['login']);
unset($_SESSION['passw']);
echo "<head><meta http-equiv='refresh' content='1' url='index.php'></head>";
}
}
else
echo "<form method='post'>
<table rules='all'>
<tr><td colspan='2' align='center'><b>Авторизация</b></td></tr>
<tr><td>Ваш логин</td><td><input type='text' name='login'></td></tr>
<tr><td>Ваш пароль</td><td><input type='password' name='passw'></td></tr>
<tr><td colspan='2' align='center'><input type='submit' name='sub' value='Отправить'></td></tr>
</table>
</form>";
?>
|
Но в нём во время авторизации идёт проверка только по паролю:
if ($data['passw'] == $passw)
{
//устанавливаем sessie
$_SESSION['login'] = $data['login'];
$_SESSION['passw'] = $data['passw'];
echo "Доброго времяни суток ".$data['login']."!";
}
else echo "Не правильный пароль";
|
подскажите, как подставить проверку и по логину! Я пытался разными способами, но ограниченные знания в области PHP мне не помогли...
заранее спасибо! | |
|
|
|
|
|
|
|
для: frisst
(05.01.2010 в 19:46)
| | Так сначала надо было разобраться в том, что тут написано.
Из базы запрашивается аккаунт с данным логином. Если такой имеется, то сравнивается данный пароль и пароль для уже известного аккаунта. | |
|
|
|
|
|
|
|
для: neadekvat
(05.01.2010 в 19:51)
| | Дело в том, что если пользователь введёт неверный логин, то форма просто очищается и информации об ошибке нет. незнающего юзера это может завести в тупик... | |
|
|
|
|
|
|
|
для: frisst
(05.01.2010 в 20:22)
| | А это уже немножко другой вопрос, согласитесь. | |
|
|
|
|
|
|
|
для: frisst
(05.01.2010 в 19:46)
| |
$result = mysql_query("select * from users where login='$login'");
$data = mysql_fetch_assoc($result);
if (mysql_num_rows($result)>0)
{
if ($data['passw'] == $passw)
{
//устанавливаем sessie
$_SESSION['login'] = $data['login'];
$_SESSION['passw'] = $data['passw'];
echo "Доброго времяни суток ".$data['login']."!";
}
else echo "Не правильный пароль";
}
else echo "Не правильный логин";
|
чо-то ка-то так=) | |
|
|
|
|
|
|
|
для: Boeing
(05.01.2010 в 20:57)
| | Нет прямого противопостовления - "неправильный" пишется слитно. | |
|
|
|
|
|
|
|
для: neadekvat
(05.01.2010 в 22:50)
| | ну, я просто скопипастил))) кстати, противопоставление пишется через А. Проверочное слово - то же простивопостАААвить :) Согласен?:) | |
|
|
|
|
|
|
|
для: Boeing
(06.01.2010 в 00:51)
| | А тут "тоже", уж если употреблять, то слитно)) | |
|
|
|
|
|
|
|
для: neadekvat
(06.01.2010 в 01:02)
| | Скоро Boeing и neadekvat будут общаться в Форуме на исключительно правильном, грамотном, Русском языке. :) | |
|
|
|
|
|
|
|
для: IceGhost
(06.01.2010 в 01:09)
| | > на исключительно правильном, грамотном, Русском языке. :)
Более нелогичным выражением является только набор слов, НЕ связанных по смыслу.
Абсолютно грамотно говорить/писать не получиться ни у кого и никогда - это просто нереально =) Но к этому надо стремиться, согласитесь.
Хотя порой просто-напросто лень выписывать все эти "ться" и "тся", поставил "ццо" и счастлив. | |
|
|
|
|
|
|
|
для: neadekvat
(06.01.2010 в 01:16)
| |
исключительно правильном, грамотном
|
В это словосочетание мной был вложен соответствующий смысл. ;) | |
|
|
|
|
|
|
|
для: neadekvat
(06.01.2010 в 01:02)
| | Нет:))) я имею ввиду не тоже - сочинительный союз, а то же - местоимение с частицей=) | |
|
|
|
|
|
|
|
для: Boeing
(06.01.2010 в 01:15)
| | Сказать по правде, я вообще не улавливаю логики в использовании "то(же)" в том предложении) | |
|
|
|
|
|
|
|
для: neadekvat
(06.01.2010 в 01:17)
| | ну всо я обидел ся=0) | |
|
|
|
|
|
|
|
для: Boeing
(06.01.2010 в 01:21)
| | > обидел ся
Зачем вы себя обидели? о.О | |
|
|
|
|
|
|
|
для: neadekvat
(06.01.2010 в 01:32)
| | ну мне просто делать нефиг полвторого ночи, вот я взял и обидел ся=))) | |
|
|
|
|
|
|
|
для: Boeing
(06.01.2010 в 01:37)
| | Ну, почитайте что-нибудь полезное, например. | |
|
|
|
|
|
|
|
для: neadekvat
(06.01.2010 в 01:40)
| | пасиб))) | |
|
|
|
|
|
|
|
для: Boeing
(06.01.2010 в 01:42)
| | Обращайся, я еще что-нибудь подберу)) | |
|
|
|
|
|
|
|
для: frisst
(05.01.2010 в 19:46)
| | сколько раз можно говорить не храните пароль в сессиях | |
|
|
|
|
|
|
|
для: t3ma
(06.01.2010 в 10:21)
| | последнее слово лишнее. | |
|
|
|
|
|
|
|
для: t3ma
(06.01.2010 в 10:21)
| | Да я знаю что это опасно, но для меня нет выхода лучше (или я просто про него не знаю) | |
|
|
|