Приветствую!
Возник вопрос следующего содержания:
У меня есть таблица вида:
id | name| login | password | email
К одной странице сайта необходимо открыть доступ только одному пользователю (администратору), id которого равен 1.
Форма авторизации в два поля: логин и пароль.
Как мне вытащить из базы логин и пароль первого пользователя и сравнить их с полученными из формы GET переменными?
Заранее спасибо.
Через форму отправляются данные на страницу, $_GET['name'] $_GET['pass'] проходят через регулярное выражение или фильтруются. Далее отправляется запрос в базу данных к строке в которой ид = 1. Элементы возращенного массива сравниваются с переданными(отфильтрованными) данными. И в случае если они идентичны то открывается скрытое содержимое. Все нужные функции можно найти на http://www.php.net/manual/ru/
15 Мар 2013, 21:24GercoG,
$row = mysql_fetch_array(mysql_query("select `login`, `password` from `users` ));
if($row['login'] == $_GET['login'] and $row['password'] == $_GET['password'])
echo 'Черт подери , ты крут';
//не забываем про фильтрацию и если нужно вытащить только последнего пользователя данные то добавляем order by `id` desc limit 1
добавлено спустя 54 секунды:
IceJOKER,
можно упростить код сразу проверив значения в запросе, то есть в запрос дописываешь условие where и потом проверка
$auth = mysql_result(mysql_query("select count(*) from `users` where `login`='".$_GET['login']."' and `login` = '".$_GET['password']."'"),0);
if($auth)
echo 'welcome to hell';
опять же не забываем про фильтрацию переменных, особенно ГЕТ
IceJOKER, а что если в базе вывод по умолчанию делается desc а не asc и у тебя 2 логина)
$auth = mysql_result(mysql_query("select count(*) from `users` where `login`='".$_GET['login']."' and `password` = '".$_GET['password']."' where `id`='1'"),0);
if($auth)echo 'welcome to hell';
MadLion, а что если id не первый ????
что за тупость ты ща ляпнул, ни на одном сайте регистрация не предусматривает два одинаковых логина
IceJOKER,
[php:1:7494116d79]К одной странице сайта необходимо открыть доступ только одному пользователю (администратору), id которого равен 1.[/php:1:7494116d79]
Почему то не проходит проверку. Даже при правильном вводе выдает error
[php:1:416b1dde00] <?php
include("connect.php");
$auth = mysql_result(mysql_query("select count(*) from `register`
where `login`='".$_GET['login']."'
and `password` = '".$_GET
['pass']."' where
`id`='1'"),0);
if($auth)
{
echo'welcome to hell';
}
else {
echo'error';
}
?>[/php:1:416b1dde00]
GercoG, у тебя два WHERE.
[php:1:fed356ed8c]$auth = mysql_result(mysql_query("SELECT count(*) FROM `users` WHERE `login`='".$_GET['login']."' AND `password` = '".$_GET['password']."' AND `id`='1'"),0);[/php:1:fed356ed8c]
^ это правильный запрос.