Проблема с аутентификация

chiffa

Guest
Проблема с аутентификация

Всем привет. Вопрос такой. У меня есть код:
PHP:
function  authenticate()
{
   Header( "WWW-authenticate:  basic  realm='MySQL/PHP Demo'");
   Header( "HTTP/1.0  401  Unauthorized");
   echo  "You  must  enter  a  valid  login  ID  and  password  to  access  this  resource\n";
   exit;
}
if(!isset($PHP_AUTH_USER) || $PHP_AUTH_USER=="" || $PHP_AUTH_PW=="")
{
   authenticate();
}
else
{
   mysql_connect( 'localhost','root','');
   mysql_select_db("passw");
   $result = mysql_query("select * FROM passw where login = '$PHP_AUTH_USER' and pass='$PHP_AUTH_PW'");
   $row = mysql_fetch_array($result);
   if ($PHP_AUTH_PW!==$row["password"] ||  $PHP_AUTH_USER!=$row["name"])  authenticate();

}
echo "User ID :".$row["id"];
Вроде как всё работает, при загрузке выводит окно, но когда я ввожу логин и пароль и нажимаю ОК ничего не происходит, мне выбрасывает тоже окно. Логин и пароль проверял несколько раз - ввожу правильный :)

В чём может быть дело?! Зарание спасибо!
 

MiRacLe

просто Чудо
это значит что ты за каким-то членом exit написал в скрипте,
зачем?

а чтобы ты велосипеды не изобретал а обкатывал уже существующие я дал тебе ссылку

-~{}~ 24.05.04 11:21:

хотя пардон , exit не причём

-~{}~ 24.05.04 11:23:

--
if ($PHP_AUTH_PW!==$row["password"] || $PHP_AUTH_USER!=$row["name"]) authenticate();

++
if (mysql_num_rows($result) == 1)
{
// о ништяк
}
else
{
// мда.. косяк
}
 

chiffa

Guest
MiRacLe, а в чём тогда дело на "велосипеде" :) я ничего про свою проблему не нашёл...
 

crocodile2u

http://vbolshov.org.ru
выводится окно
Окно будет выводиться даже если php установлен как CGI.

Впрочем, последний пост снимает мой вопрос...

-~{}~ 24.05.04 11:58:

Originally posted by Lucky
используй $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'];
Это - правильный совет... Извините, что сам подробнее в коде не разобрался. А еще совет: в phpMyAdmin есть функции авторизации:

http.auth.lib.php

Там все сделано правильно.
 

neko

tеam neko
поподробней про "наглую ложь" можно?

у меня выводится.
 

crocodile2u

http://vbolshov.org.ru
1. Окно авторизации при php как cgi выводиться будет

2. А вот переменные окружения $_SERVER['PHP_AUTH_USER/PW'] заводятся только в случае mod_phpX.c

3. С чего бы это окну авторизации не выводиться? Отправил header - и на тебе - получи окошко. Только вот без пользы это, если как cgi
 

neko

tеam neko
так

chiffa

вот это:

PHP:
$PHP_AUTH_PW!==$row["password"]
означает следующее:

не равны и не совпадают типы

понял, да?
 
Сверху