[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Аутентификация с использванием MySQL
SiFaust
Добрый день! Учусь php совсем недавно и мне показалось интересным попробовать сделать страничку аутентификации...
Но ушел не далеко стакнувшись с проблемой, скрипт должен проверять значение введенных полей $name и $pass с полями таблицы Name и Pass.
Ничего не получалось и я сократил условие до сравнения только $name и поля Name.
Все равно не помогло, не ну в общем то получается но только с тем пользователем который был создан самым первым тоесть с порядковым номером 0.
Вот собственно и сам кусок кода:
Код
<?php
error_reporting( E_ALL & E_STRICT );
echo $name;
include "config.php";
$ath = mysql_query("select * from See;") or die (mysql_error());;
if($ath)
{
  if(empty($name))
{
echo "Вы не ввели Имя...";
}
else
{
  if(empty($pass))
{
echo "Вы не ввели Пароль...";
}
else
{
$auf=mysql_fetch_array($ath);
if($auf['Name']==$name)
{
echo "Доступ получен!";
}
else
{
echo "Вы не правильно ввели имя или пароль!В доступе отказано!";
}
}
}
}
?>

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




Спустя 10 минут, 44 секунды (11.05.2008 - 14:54) Ghost написал(а):
запросом
Цитата
select * from See

ты выбираешь все записи из таблицы See, затем с помощью mysql_fetch_array считываешь 1-ю запись сравниваешь ее значение поля Name с введённым в форме

Попробуй в запросе использовать условие
http://phpclub.ru/mysql/doc/select.html - в помощь

Спустя 2 часа, 56 минут, 57 секунд (11.05.2008 - 17:51) SiFaust написал(а):
Ghost
Спасиб, правда там я так и не разобрался...
Вобщем я вместо mysql_fetch_array использовал mysql_result и просто перебрал сравнивая через цикл все значения поля Name unsure.gif .
$limit там это текущее количество зарегистрированных пользователей, правда как его вывести я еще не додумался, пробовал через mysql_sum_fields но не слишком успешно dumau.gif
Код
<?php
error_reporting( E_ALL & E_STRICT );
echo $name;
include "config.php";
$limit=20;$num=0;
$ath = mysql_query("select * from See;") or die (mysql_error());;
if($ath)
{
  if(empty($name))
{
echo "Вы не ввели Имя...";
}
else
{
  if(empty($pass))
{
echo "Вы не ввели Пароль...";
}
else
{
do
{
$auf=mysql_result($ath,$num,'Name');
if($name==$auf)
{
$login=true;
break;
}
$login=false;
}
while(++$num<=$limit);
if($login)
{
echo "Доступ предоставлен!";
}
else
{
echo "Доступ запрещен! Пароль или имя были введены не правильно!";
}
}
}
}
?>

Все работает но почему-то я считаю этот способ способом "Через Ж" и что есть более простые способы, правда до них я додуматься не магу, может вы подскажите чего еще или поправите если я что ни так сделал?

Спустя 18 минут, 15 секунд (11.05.2008 - 18:09) Ghost написал(а):
если не через ж, то надо выбирать в запросе не все записи таблицы, а только ту, у которой имя совпадает с там, что пришло из формы.
в запросе необходимо условие WHERE ...

Спустя 1 час, 34 минуты, 21 секунда (11.05.2008 - 19:44) SiFaust написал(а):
Фуф, уже и не знаю, я так понял у меня должно быть что то типа mysql_query("SELECT * FROM See WHERE Name LIKE '$name';") или mysql_query("SELECT * FROM See WHERE Name='$name';") но такое не прокатывает...
Код
$auf=mysql_query("SELECT * FROM See WHERE Name LIKE '$name';") or die (mysql_error());;
if($auf)
{
echo "Доступ предоставлен!";
}
else
{
echo "Доступ запрещен! Пароль или имя были введены не правильно!";
}

Но какое бы значение не носило $name, $auf всеравно возвращает мне true и доступ постоянно предоставлен... dumau.gif

Спустя 29 минут, 58 секунд (11.05.2008 - 20:14) Ghost написал(а):
правильно, потому что в $auf содержится результат запроса, а не логическая переменная. запрос выполнен - результат есть, пустой он или нет - это уже другими ф-циями проверяется
изучай http://ua2.php.net/manual/ru/ref.mysql.php

Спустя 4 дня, 2 часа, 35 минут, 51 секунда (15.05.2008 - 22:49) SiFaust написал(а):
Все, все свои ошибки я понял, и осознал почему не работало.
Правда я так и не нашел как эту проблему решить, ведь по идее я сначала все делаю правильно, нужное имя в таблице ищется и находится, а вот как и что дальше я без понятия соврешенно(точнее что дальше то надо я понимаю, мне надо по идее надо что бы если имя то выдавало истину а если нет то ложь но ведь $auf всегда будет давать true, и что делать я теряюсь...), читал и перечитывал все что Вы мне давали (за что отдельное спасибо), попробывал уже как кажется все до чего смог додуматься но без результата =\

Очень хотелось дойти до всего самому но видно не судьба) Не могли бы Вы мне "тупо показать" что же делать дальше?

Спустя 36 минут, 3 секунды (15.05.2008 - 23:25) Ghost написал(а):
воспользоваться ф-цией mysql_fetch_assoc например.. или mysql_num_rows для проверки кол-ва найденных записей

Спустя 22 минуты, 34 секунды (15.05.2008 - 23:48) SiFaust написал(а):
Блин! Воистину все гениальное просто! Жаль только что путь к простуому лежит зачастую через дебри долгих мучений)

А я все через fetch_array пробывал, а тут... Теперь все работает! Большое спасибо!

И вообще спасибо всем кто сидит на этом форуме да и на форумах и не только вообще, и помогает таким как я, большое человеческое вам за это!

Спустя 22 часа, 4 минуты, 56 секунд (16.05.2008 - 21:53) SiFaust написал(а):
//Оффтоп, вот если мне нужен форум с эээ не совсем обычными функциями, ничего навороченого но такого в других форумах нету, что проще, начать писать свой форум такой как надо или проще взять что то типа phpBB и изменить его под себя?

Спустя 12 часов, 54 минуты, 28 секунд (17.05.2008 - 10:47) md5 написал(а):
тебе решать

Спустя 8 дней, 11 часов, 41 минута, 37 секунд (25.05.2008 - 22:29) SiFaust написал(а):
Я вот подумал подумал, подумал подумал, оно свое как бы роднее ))
Вобщем свой форум хоечется попробывать написать, ьез каких либо наворотов чистый форум.
Подскаэите кто примерно с чего начинать и чем заканчивать? ну в общих чертах =) а то я даже примерно не представляю что делать ))

Спустя 18 часов, 15 минут, 55 секунд (26.05.2008 - 16:45) Ghost написал(а):
для начала попробуй разобраться в том что уже написано.
потом сделаешь свой - аналогично

Спустя 5 часов, 57 минут, 19 секунд (26.05.2008 - 22:42) SiFaust написал(а):
Так и сделал вобщем то)) нашел исходники самого просто и изжеваного форума. Только там я так понял ООП, а в нем тук тук и немного меньше )))
Так что видимо садимся вновь за учебники и статьи)))

Спустя 13 часов, 1 минута, 25 секунд (27.05.2008 - 11:44) Adil написал(а):
SiFaust начни с гостевой книги... он переростет в форум )))


_____________
Всегда стремлюсь вперед, но почему то спотыкаюсь и падаю o.O
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.