Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не работает базовая авторизация
 
 автор: 10100100   (08.07.2006 в 13:11)   письмо автору
 
 

ну собсно так и есть...

<?php 
  
require_once("config.php");
  if(!isset(
$_SERVER['PHP_AUTH_USER'])) 
  { 
    
Header("WWW-Authenticate: Basic realm=\"Admin Page\""); 
    
Header("HTTP/1.0 401 Unauthorized"); 
    exit(); 
  } 
  else 
  { 
    if (!
get_magic_quotes_gpc())
    {
      
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
      
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
    }
    
$_SERVER['PHP_AUTH_USER'] = str_replace("'","'",$_SERVER['PHP_AUTH_USER']);
    
$_SERVER['PHP_AUTH_PW'] = str_replace("'","'",$_SERVER['PHP_AUTH_PW']);
    
    
$query "SELECT pass FROM userlist WHERE name='".$_SERVER['PHP_AUTH_USER']."'";
    
$lst = @mysql_query($query); 
    if(!
$lst)
    {
      
Header("WWW-Authenticate: Basic realm=\"Admin Page\""); 
      
Header("HTTP/1.0 401 Unauthorized"); 
      exit(); 
    }
    if(
mysql_num_rows($lst) == 0)
    {
      
Header("WWW-Authenticate: Basic realm=\"Admin Page\""); 
      
Header("HTTP/1.0 401 Unauthorized"); 
      exit(); 
    }
    
$pass = @mysql_fetch_array($lst);
    if(
md5($_SERVER['PHP_AUTH_PW']) != $pass['pass'])
    {
      
Header("WWW-Authenticate: Basic realm=\"Admin Page\""); 
      
Header("HTTP/1.0 401 Unauthorized"); 
      exit(); 
    }
  }
?>

видимо гдето косяк :(( БД я проверял - там всё в поряде....
косяк наверное заключется в том - чот код учитывает только ситуации неправильного ввода и невозможности входа... может нужно сделать описание положительной ситуации?

   
 
 автор: cheops   (08.07.2006 в 15:00)   письмо автору
 
   для: 10100100   (08.07.2006 в 13:11)
 

А у вас PHP подключён модулем или CGI - на CGI этот скрипт работать не будет - Apache в этом случае не заполняет переменные окружения PHP_AUTH_USER и PHP_AUTH_PW.

   
 
 автор: 10100100   (08.07.2006 в 15:06)   письмо автору
 
   для: cheops   (08.07.2006 в 15:00)
 

что значит "не подключён модулем или CGI"? папка CGI на серваке имеется.... чё делать тогда ? :((

   
 
 автор: cheops   (08.07.2006 в 15:10)   письмо автору
 
   для: 10100100   (08.07.2006 в 15:06)
 

Нет я не это имел ввиду, запустите скрипт
<?php
  phpinfo
();
?>

на той машине где запускаете скрипт авторизации, в строке "Server API" что записано?

   
 
 автор: 10100100   (08.07.2006 в 15:23)   письмо автору
 
   для: cheops   (08.07.2006 в 15:10)
 

"CGI" - :((
И что мне теперь делать?
А Вы можете более просто обьяснить мне то что написали в первом посте? хоцца понять...

   
 
 автор: hars   (08.07.2006 в 15:32)   письмо автору
 
   для: 10100100   (08.07.2006 в 15:23)
 

Вопрос по подключению PHP как модуля и как CGI освещён подробно здесь
http://phpclub.ru/detail/article/2001-04-20

   
 
 автор: cheops   (08.07.2006 в 20:55)   письмо автору
 
   для: 10100100   (08.07.2006 в 15:23)
 

Это у хостера или у вас на локальной машине?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования