<?php
if (isset($_SESSION['auth']))echo '<br><br>Вы авторизованы, <a href="/mybook/index.php?logout">Выход</a>'; else {?>
<form method='POST' action = 'index.php'>
Логин <input type='text' name='login'><br>
Пароль<input type='password' name='pass'>
<input type='submit' value='Авторизоваться'>
</form>
вы не авторизованы
<?}?>
и такой код авторизации:
<?php
session_start();
if ($_POST['login'] == 'php' && $_POST['pass'] == '12345') $_SESSION['auth'] = '1';
if (isset($_GET['logout'])) unset($_SESSION['auth']);
if ($_POST['login'] == 'Vasya' && $_POST['pass'] == '12345') $_SESSION['auth'] = '1';
if (isset($_GET['logout'])) unset($_SESSION['auth']);
if ($_POST['login'] == 'Max' && $_POST['pass'] == '12345') $_SESSION['auth'] = '1';
if (isset($_GET['logout'])) unset($_SESSION['auth']);
if ($_POST['login'] == 'admin' && $_POST['pass'] == '12345') $_SESSION['auth'] = '1';
if (isset($_GET['logout'])) unset($_SESSION['auth']);
?>
Вопрос такой: Как сделать так,что бы при авторизации имя и пароль сравнивались с значениями из базы даных?если можно, то по подробнее,я чайник в этом деле.
Спустя 10 минут, 11 секунд (21.10.2011 - 15:52) Renden написал(а):
happy46
Ну для начала надо создать базу данных, создать таблицу с полями id | login | password.
Потом при сабмите формы посылать запрос в бд. ну типа:
ну только заместо echo "логин\пароль верны"; выполнять действия связанные с сессией..
Ну для начала надо создать базу данных, создать таблицу с полями id | login | password.
Потом при сабмите формы посылать запрос в бд. ну типа:
$login = mysql_real_escape_string(trim($_POST['login']));
$password = mysql_real_escape_string(trim($_POST['password']));
$query = mysql_query("SELECT FROM `users` WHERE `login`='$login' AND `password`='$password'");
if(mysql_num_rows($query))
echo "логин\пароль верны";
else
echo "введен неверный логин\пароль";
ну только заместо echo "логин\пароль верны"; выполнять действия связанные с сессией..
Спустя 1 минута, 17 секунд (21.10.2011 - 15:53) YVSIK написал(а):
happy46 может так !! пишешь к каждой строчке комментарии
что хотел сделать , всю свою логику выполнения этого скрипта .
вот попробуй своими словами описать что тут написал
что хотел сделать , всю свою логику выполнения этого скрипта .
вот попробуй своими словами описать что тут написал
if ($_POST['login'] == 'php' && $_POST['pass'] == '12345')
Спустя 3 минуты, 9 секунд (21.10.2011 - 15:56) m4a1fox написал(а):
Renden, просто интересно. Читал где-то что
Цитата |
$login = mysql_real_escape_string(trim($_POST['login'])); $password = mysql_real_escape_string(trim($_POST['password'])); |
mysql_real_escape_string
Нужно применять только при добавлении данных в БД. То есть так оно не сработает! Или меня жестоко надули?
Спустя 3 минуты, 42 секунды (21.10.2011 - 16:00) Winston написал(а):
Цитата (m4a1fox @ 21.10.2011 - 15:56) |
Нужно применять только при добавлении данных в БД. То есть так оно не сработает! Или меня жестоко надули? |
Если подключение с БД есть, то сработает, иначе будет Access denied
Спустя 50 секунд (21.10.2011 - 16:01) happy46 написал(а):
Цитата (Renden @ 21.10.2011 - 12:52) |
happy46 Ну для начала надо создать базу данных, создать таблицу с полями id | login | password. Потом при сабмите формы посылать запрос в бд. ну типа:
ну только заместо echo "логин\пароль верны"; выполнять действия связанные с сессией.. |
пишет такое: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\mybook\index.php on line 8
введен неверный логин\пароль
Спустя 2 минуты (21.10.2011 - 16:03) johniek_comp написал(а):
http://irbis-team.com/15/7
тут расписано так что не получится не должно! дерзай! удачи!
тут расписано так что не получится не должно! дерзай! удачи!
Спустя 1 минута, 2 секунды (21.10.2011 - 16:04) happy46 написал(а):
Цитата (YVSIK @ 21.10.2011 - 12:53) |
happy46 может так !! пишешь к каждой строчке комментарии что хотел сделать , всю свою логику выполнения этого скрипта . вот попробуй своими словами описать что тут написал if ($_POST['login'] == 'php' && $_POST['pass'] == '12345') |
примерн если логин и пароль равны сответственно , то делать то.....может где я не правилно сделал,но я тока начинающий...напиши тогда как правильно вообще мне все реализовать...буду благодарен=)
Спустя 18 секунд (21.10.2011 - 16:04) imbalance_hero написал(а):
happy46
mysql_query("тут запрос") or die(mysql_error());
Спустя 36 секунд (21.10.2011 - 16:05) Winston написал(а):
$query = mysql_query("SELECT * FROM `users` WHERE `login`='$login' AND `password`='$password'");
ОФФТОП
johniek_comp
Когда чат будет ? :D
Когда чат будет ? :D
Спустя 2 минуты, 13 секунд (21.10.2011 - 16:07) m4a1fox написал(а):
А разве так нельзя
$login = mysql_real_escape_string(trim($_POST['login']));
$password = mysql_real_escape_string(trim($_POST['password']));
$query = mysql_query("SELECT * FROM `users`
WHERE `login`='".$login."' AND `password`='".$password."'
LIMIT 1 ") or die("Ошибка - ".mysql_error()) ;
if($query(вот тут тупичок. Тупо не помню. Если запрос вернет 0 то это все равно будет TRUE?))
echo "логин\пароль верны";
else
echo "введен неверный логин\пароль";
Спустя 21 секунда (21.10.2011 - 16:07) Игорь_Vasinsky написал(а):
happy46
на время отлпдки пиши так
ты * - после SELECT пропустил.
на время отлпдки пиши так
$query = mysql_query("SELECT * FROM `users` WHERE `login`='" . $login . "' AND `password`='" . $password . "'") or die(mysql_error());
ты * - после SELECT пропустил.
Спустя 28 секунд (21.10.2011 - 16:08) Winston написал(а):
Цитата (m4a1fox @ 21.10.2011 - 16:07) |
SELECT FROM |
Один написал, и все копируют примеры, где не указано, что выбирается
Спустя 33 секунды (21.10.2011 - 16:08) YVSIK написал(а):
Цитата (Winston @ 21.10.2011 - 16:05) |
$query = mysql_query("SELECT * FROM `users` WHERE `login`='$login' AND `password`='$password'"); ОФФТОП johniek_comp Когда чат будет ? :D |
Свернутый текст
ага в тот-же котел !!
Спустя 30 секунд (21.10.2011 - 16:09) Игорь_Vasinsky написал(а):
обрати внимание на конкатенацию (ковычки)
подробнее - есть линк в моей подписи "Оформление SQL запроса"
подробнее - есть линк в моей подписи "Оформление SQL запроса"
Спустя 33 секунды (21.10.2011 - 16:09) johniek_comp написал(а):
Winston
[moon]Капчу поставил, но надо сделать так что бы если 5 сообщений в течении n-ого времени приходили, то она только в том случае появлялась, вот сделал что-то подобное... [/moon]
[moon]Капчу поставил, но надо сделать так что бы если 5 сообщений в течении n-ого времени приходили, то она только в том случае появлялась, вот сделал что-то подобное... [/moon]
Спустя 15 секунд (21.10.2011 - 16:09) Игорь_Vasinsky написал(а):
ну теперь тож все копировать будут
а я первый был
а я первый был
Спустя 18 секунд (21.10.2011 - 16:10) Winston написал(а):
Свернутый текст
Цитата (Игорь_Vasinsky @ 21.10.2011 - 16:09) |
(ковычки) |
Правильно кавычки
Спустя 1 минута, 17 секунд (21.10.2011 - 16:11) Игорь_Vasinsky написал(а):
johniek_comp
зачем офтопить то. есть же свой топик.
Winston
на форуме я редко за орфАграфией слежу не до неё... вперёд успеть надо.
зачем офтопить то. есть же свой топик.
Winston
на форуме я редко за орфАграфией слежу не до неё... вперёд успеть надо.
Спустя 26 секунд (21.10.2011 - 16:11) m4a1fox написал(а):
Глаз алмаз у всех! А мы с YVSIK - слепые!
Спустя 55 секунд (21.10.2011 - 16:12) YVSIK написал(а):
happy46 расписывается так :
по утру
встать;
умыться;
пойти на работу;
если (ты начальник)
{
взять веник;
поехать в сауну;
}
(иначе)
{
упасть;
отжаться;
}
а как точно вот тут и надо смотреть и понять все базовые принципы
по утру
встать;
умыться;
пойти на работу;
если (ты начальник)
{
взять веник;
поехать в сауну;
}
(иначе)
{
упасть;
отжаться;
}
а как точно вот тут и надо смотреть и понять все базовые принципы
Спустя 2 минуты, 13 секунд (21.10.2011 - 16:15) Игорь_Vasinsky написал(а):
YVSIK
что это было?
что это было?
Спустя 2 минуты, 46 секунд (21.10.2011 - 16:17) Игорь_Vasinsky написал(а):
m4a1fox
Цитата |
if($query(вот тут тупичок. Тупо не помню. Если запрос вернет 0 то это все равно будет TRUE?)) |
если совпадений нет - то FALSE
если есть то INTEGER
Спустя 27 секунд (21.10.2011 - 16:18) m4a1fox написал(а):
Это он логику скрипта расписал по аналогии для большей наглядности! Я в какой то книжке так же видел.
Игорь_Vasinsky
Игорь_Vasinsky
Цитата |
если совпадений нет - то FALSE если есть то INTEGER |
А ну значит как я и думал. Тогда можно так делать
$login = mysql_real_escape_string(trim($_POST['login']));
$password = mysql_real_escape_string(trim($_POST['password']));
$query = mysql_query("SELECT * FROM `users`
WHERE `login`='".$login."' AND `password`='".$password."'
LIMIT 1 ") or die("Ошибка - ".mysql_error()) ;
if($query)
echo "логин\пароль верны";
else
echo "введен неверный логин\пароль";
Спустя 1 минута, 38 секунд (21.10.2011 - 16:19) m4a1fox написал(а):
Игорь_Vasinsky
Цитата |
если совпадений нет - то FALSE если есть то INTEGER |
А ну значит как я и думал. Тогда можно так делать
$login = mysql_real_escape_string(trim($_POST['login']));
$password = mysql_real_escape_string(trim($_POST['password']));
$query = mysql_query("SELECT * FROM `users`
WHERE `login`='".$login."' AND `password`='".$password."'
LIMIT 1 ") or die("Ошибка - ".mysql_error()) ;
if($query)
echo "логин\пароль верны";
else
echo "введен неверный логин\пароль";
Спустя 6 секунд (21.10.2011 - 16:20) Winston написал(а):
Цитата (Игорь_Vasinsky @ 21.10.2011 - 16:17) |
если совпадений нет - то FALSE если есть то INTEGER |
mysql_query возвращает resource, а если ошибка в запросе то false
А mysql_num_rows возвращает int
Спустя 1 минута, 50 секунд (21.10.2011 - 16:21) Игорь_Vasinsky написал(а):
я подумал что про num_rows речь.....
конечно False или ресурс
конечно False или ресурс
Спустя 14 секунд (21.10.2011 - 16:22) m4a1fox написал(а):
Черт, значит я ошибся.
тогда
тогда
$login = mysql_real_escape_string(trim($_POST['login']));
$password = mysql_real_escape_string(trim($_POST['password']));
$query = mysql_query("SELECT * FROM `users`
WHERE `login`='".$login."' AND `password`='".$password."'
LIMIT 1 ") or die("Ошибка - ".mysql_error()) ;
if(mysql_num_rows($query))
echo "логин\пароль верны";
else
echo "введен неверный логин\пароль";
Спустя 2 минуты, 51 секунда (21.10.2011 - 16:24) Игорь_Vasinsky написал(а):
m4a1fox
как это ошибся...
успешный ответ от запроса (выборки) - должен возращать ресурс....
как это ошибся...
успешный ответ от запроса (выборки) - должен возращать ресурс....
Спустя 3 минуты, 1 секунда (21.10.2011 - 16:28) YVSIK написал(а):
Игорь_Vasinsky
m4a1fox
рОбятЫ а рОбятЫ, кончайте офтопить ответьте ТС он задал вопрос а вы начали вси свои дела тут обсуждать , а он уже так и сбежал так ничего и не поняв что тут началось !!
m4a1fox
рОбятЫ а рОбятЫ, кончайте офтопить ответьте ТС он задал вопрос а вы начали вси свои дела тут обсуждать , а он уже так и сбежал так ничего и не поняв что тут началось !!
Спустя 1 минута, 16 секунд (21.10.2011 - 16:29) Игорь_Vasinsky написал(а):
YVSIK
Процетируй его вопрос.. чёт я не вижу
Процетируй его вопрос.. чёт я не вижу
Спустя 25 секунд (21.10.2011 - 16:29) m4a1fox написал(а):
Да брось YVSIK. Ему готовый скрипт дали
$login = mysql_real_escape_string(trim($_POST['login']));
$password = mysql_real_escape_string(trim($_POST['password']));
$query = mysql_query("SELECT * FROM `users`
WHERE `login`='".$login."' AND `password`='".$password."'
LIMIT 1 ") or die("Ошибка - ".mysql_error()) ;
if(mysql_num_rows($query))
echo "логин\пароль верны";
else
echo "введен неверный логин\пароль";
Спустя 1 минута, 36 секунд (21.10.2011 - 16:31) Winston написал(а):
Пароль в незашифрованом виде.... не плохо
Спустя 39 секунд (21.10.2011 - 16:31) YVSIK написал(а):
Цитата |
Вопрос такой: Как сделать так,что бы при авторизации имя и пароль сравнивались с значениями из базы даных?если можно, то по подробнее,я чайник в этом деле. |
m4a1fox
а он что его понял? этот ответ? а вы начали о ссвоем говорить !
Спустя 2 минуты, 41 секунда (21.10.2011 - 16:34) m4a1fox написал(а):
Ну да по хорошему там посолить с начала и с конца строки с паролем, потом кинуть в md5() или sha1, хотя мне md5() ближе, больше нравится! Вот тогда это уже что-то будет нормальное!
Спустя 18 секунд (21.10.2011 - 16:34) Игорь_Vasinsky написал(а):
Для ТС
перед тем как пихать пароли в БД - шифруй (поле для пароля 40 симв... вроде для sha1)
след-но и при сверке в коде
да. пароли потом ты не увидишь..только хэш
перед тем как пихать пароли в БД - шифруй (поле для пароля 40 симв... вроде для sha1)
$password = sha1($password);
след-но и при сверке в коде
WHERE `login`='".$login."' AND `password`='".sha1($password)."'
да. пароли потом ты не увидишь..только хэш
Спустя 5 минут, 31 секунда (21.10.2011 - 16:40) m4a1fox написал(а):
YVSIK
Дык он и не спрашивал. Раз не спрашивает - значит понимает! Не надо Робина Гуда строить! Мы все тут были нубами в таких вопросах когда то и если что то не понимали, то спрашивали а не сидели и F5 жмякали в надежде на правильный ответ. И если б не своя инициатива, мол, поясните глупому ну не понимаю, то до сих пор бы путали isset и empty. Кстати, у ТС, чего-то я кнопочки на отправку данных я не увидел! Недочет! Надо поправить. Предположим стандартный вариант кнопки
Дык он и не спрашивал. Раз не спрашивает - значит понимает! Не надо Робина Гуда строить! Мы все тут были нубами в таких вопросах когда то и если что то не понимали, то спрашивали а не сидели и F5 жмякали в надежде на правильный ответ. И если б не своя инициатива, мол, поясните глупому ну не понимаю, то до сих пор бы путали isset и empty. Кстати, у ТС, чего-то я кнопочки на отправку данных я не увидел! Недочет! Надо поправить. Предположим стандартный вариант кнопки
if(isset($_POST['submit'])){
$login = !empty($_POST['login'])?mysql_real_escape_string(trim($_POST['login'])):NULL;
$password = !empty($_POST['password'])?mysql_real_escape_string(trim($_POST['password'])):NULL;
if($login !== NULL AND $password !== NULL){
$query = mysql_query("SELECT * FROM `users`
WHERE `login`='".$login."' AND `password`='".$password."'
LIMIT 1 ") or die("Ошибка - ".mysql_error()) ;
if(mysql_num_rows($query))
echo "логин\пароль верны";
else
echo "введен неверный логин\пароль";
}
}