Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Авторизация. Проблема с mysql_fetch_array, После mysql_fetch_array получается пустой массив...
-=J@GU@R=-  
 ۩  [x]    Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 6
Пользователь №: 31037
На форуме: 5 лет, 2 месяца, 14 дней
Карма:

Не пью :
27 лет, 11 месяцев, 15 дней


Доброго времени суток!

Вот элементарная вещь, а никак не работает :angry: Написал наброски авторизации пользователя.

КОД:
if(!$_POST['enter'])
{
echo "
<form action=
\"\" method=\"POST\">
<input type=
\"text\" name=\"email\" value=\"E-Mail\"><br>
<input type=
\"password\" name=\"pass\" value=\"Pass\"><br>
<input type=
\"submit\" name=\"enter\" value=\"Отправить\">
</form>
"
;
} else {
include("db_conn.php");
mysql_select_db(CMS) or die(mysql_error());
$email=$_POST['email'];
$pass=md5($_POST['pass']);
$sql=mysql_query("SELECT * FROM administration WHERE `email`='".$email."' AND `pass`='".$pass."'") or die(mysql_error());
if($sql==TRUE)
{
$admin=mysql_fetch_array($sql);
echo $admin['email'];
echo "<br>".$admin['pass'];
echo "Вы вошли на сайт!";
} else {
echo "Доступ запрещён!";
}
?>
После
$admin=mysql_fetch_array($sql);
выводится сообщение "Вы вошли на сайт!". Никаких $admin['email'] и $admin['pass'] в помине нет.

Подскажите пожалуйста, почему у меня в массиве пустота?



Спустя 14 минут, 45 секунд (11.01.2012 - 18:22) inpost написал(а):
if(!$_POST['enter']) - проверка на boolean, true or false. При этом в обоих случаях переменная должна существовать, иначе WARNING.
Чтобы не париться с кавычками, используй одинарные: echo '<div style="text">';, не забываем, что свойства аттрибутов тега должны быть в двойных!
Для инклюда скобки не нужны.
Запрос mysql_query вернёт TRUE в случае, если запрос не содержит ошибки. Ответы такие: есть 5 записей, есть 100 записей, есть 0 записей, но всё это есть ответы, и ссылка на ресурс, где ответ хранится. Проверка на то, есть ли указанная запись - mysql_num_rows(), то есть число, сколько таких записей есть в БД.

Спустя 12 минут, 14 секунд (11.01.2012 - 18:34) -=J@GU@R=- написал(а):
Цитата
Проверка на то, есть ли указанная запись - mysql_num_rows()

Исправил условие на mysql_num_rows($sql)==1 - теперь выводит "Доступ запрещён!"

Почему то выводит совсем другой хеш одного и того же пароля blink.gif Неожиданно...

Спустя 4 минуты, 40 секунд (11.01.2012 - 18:39) inpost написал(а):
echo md5('Пароль');
Сделай и смотри, обновляй страницу. Может пробелы лишние, их убрать надо было через trim

Спустя 3 минуты, 33 секунды (11.01.2012 - 18:42) -=J@GU@R=- написал(а):
Цитата
echo md5('Пароль');
Сделай и смотри, обновляй страницу.

подставил свой пароль и мне выдал 3ий вариант... бред какой-то...

Спустя 6 минут, 33 секунды (11.01.2012 - 18:49) inpost написал(а):
-=J@GU@R=-
Может ты кодировку не указал на всех 6-и уровнях?
1. Через header().
2. В БД
3. Соединение с БД
4. htaccess
5. в теге <head>
6. Кодировка самого файла.

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

Спустя 7 минут, 16 секунд (11.01.2012 - 18:56) johniek_comp написал(а):
-=J@GU@R=-
Код не верно написан, вы наверно по видео урокам учились? Если да то прошу сюда и сюда

Спустя 2 минуты, 35 секунд (11.01.2012 - 18:59) -=J@GU@R=- написал(а):
Цитата
Может ты кодировку не указал на всех 6-и уровнях?

В БД cp1251, при выборе БД она же, файл в Windows-1251

Цитата
Чтобы убедиться, что беда в кодировке, протестируй пароль на цифрах или англ.символах.

пароль цифровой

Спустя 2 минуты, 48 секунд (11.01.2012 - 19:02) inpost написал(а):
Данные перед md5 обрабатываешь через trim?
Выведи отдельно пароль: echo md5('12345'); и echo md5(trim($_POST['pass']));

Спустя 13 минут, 21 секунда (11.01.2012 - 19:15) -=J@GU@R=- написал(а):
Цитата
вы наверно по видео урокам учились?

нет, обошлось без них)
Цитата
Выведи отдельно пароль: echo md5('12345'); и echo md5(trim($_POST['pass']));

Всем спасибо, вопрос решён... вывелись разные кэши... правда не понимаю почему( вводил без ошибок и без лишних символов...


Это сообщение отредактировал -=J@GU@R=- - 11.01.2012 - 19:21
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса