Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Вывод из бд
Сообщения
GercoG

Приветствую!
Возник вопрос следующего содержания:

У меня есть таблица вида:
id | name| login | password | email

К одной странице сайта необходимо открыть доступ только одному пользователю (администратору), id которого равен 1.
Форма авторизации в два поля: логин и пароль.
Как мне вытащить из базы логин и пароль первого пользователя и сравнить их с полученными из формы GET переменными?

Заранее спасибо.

15 Мар 2013, 21:17
kos

Через форму отправляются данные на страницу, $_GET['name'] $_GET['pass'] проходят через регулярное выражение или фильтруются. Далее отправляется запрос в базу данных к строке в которой ид = 1. Элементы возращенного массива сравниваются с переданными(отфильтрованными) данными. И в случае если они идентичны то открывается скрытое содержимое. Все нужные функции можно найти на http://www.php.net/manual/ru/

15 Мар 2013, 21:24
IceJOKER

GercoG,
$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 и потом проверка

15 Мар 2013, 21:26
GercoG

Алгоритм действий я в принципе понимаю. Нужна помощь с запросом к бд.

15 Мар 2013, 21:27
IceJOKER

$auth = mysql_result(mysql_query("select count(*) from `users` where `login`='".$_GET['login']."' and `login` = '".$_GET['password']."'"),0);

if($auth)
echo 'welcome to hell';


опять же не забываем про фильтрацию переменных, особенно ГЕТ

15 Мар 2013, 21:32
MadLion

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';

15 Мар 2013, 21:47
IceJOKER

MadLion, а что если id не первый ????

что за тупость ты ща ляпнул, ни на одном сайте регистрация не предусматривает два одинаковых логина

15 Мар 2013, 21:49
TOOZ

IceJOKER,

[php:1:7494116d79]К одной странице сайта необходимо открыть доступ только одному пользователю (администратору), id которого равен 1.[/php:1:7494116d79]

15 Мар 2013, 21:53
GercoG

Почему то не проходит проверку. Даже при правильном вводе выдает 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]

15 Мар 2013, 21:58
TOOZ

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]

^ это правильный запрос.


__________
посл.ред. 15 Мар 2013, 22:03; всего 1 раз 15 Мар 2013, 22:00
Ответить на тему