Forum Webscript.Ru

Программирование => PHP => Тема начата: Foshvad от 13 Сентября 2001, 09:43:59

Название: ну не авторизируется и все!
Отправлено: Foshvad от 13 Сентября 2001, 09:43:59
Люди добрые, помогите - замаялся уже!
Пытаюсь отладить авторизацию через php, пишу вроде все правильно (в самом начале открываемой страницы):
(уж не знаю, какие слэши вырежет здесь скрипт)

if (!isset($PHP_AUTH_USER)) {
Header("WWW-Authenticate: Basic realm=\\"Admin\\"");
Header("HTTP/1.0 401 Unauthorized");
$REMOTE_USER = "";
$REMOTE_PASSWORD = "";
$PHP_AUTH_USER = "";
$PHP_AUTH_PW = "";
print "You hit cancel! if it was an accident please click here to try again.";
exit;
} else if ((!$PHP_AUTH_USER == "user") && ($PHP_AUTH_PW == "pass")) {
print "You are unauthorized";
}

А сервер упорно твердит "500 Internal Server Error" и пишет в лог

[Thu Sep 13 08:34:18 2001] [error] [client 127.0.0.1] malformed header from script. Bad header=HTTP/1.0 401 Unauthorized: c:/php/php.exe

В чем дело? Может что Apache не настроено?
Название: ну не авторизируется и все!
Отправлено: AliMamed от 13 Сентября 2001, 23:05:06
ммм.... а в логах что?
Название: ну не авторизируется и все!
Отправлено: Foshvad от 14 Сентября 2001, 00:45:13
Да вот, собственно в error.log и пишет:



[Thu Sep 13 19:34:01 2001] [error] [client 127.0.0.1] malformed header from script. Bad header=HTTP/1.0 401 Unauthorized: c:/php/php.exe

:(
Название: ну не авторизируется и все!
Отправлено: AliMamed от 14 Сентября 2001, 00:50:59
ну выходит хедер у тя неправильный
Название: ну не авторизируется и все!
Отправлено: poison от 15 Сентября 2001, 04:16:59
Все элементарно !
Даю зуб, что ты все это крутишь на апаче под виндами !

Если так то у тя ниче и не выйдет ! Нужен реальный сервер(linux, FreeBsd).
У меня были такие траблы ...

Если нет, то тогда странно .. вроде правильно все ..
Название: ну не авторизируется и все!
Отправлено: NAS от 15 Сентября 2001, 11:49:05
Цитировать
Сообщение от poison
Все элементарно !
Даю зуб, что ты все это крутишь на апаче под виндами !

Если так то у тя ниче и не выйдет ! Нужен реальный сервер(linux, FreeBsd).
У меня были такие траблы ...

Если нет, то тогда странно .. вроде правильно все ..


Естественно он под виндами

401 Unauthorized: c:/php/php.exe
Название: ну не авторизируется и все!
Отправлено: Foshvad от 15 Сентября 2001, 12:33:04
Есно под виндами :(
Тогда, если можно, следующий вопрос:
как вообще из виндов можно вызвать пресловутое окошко авторизации?
.htaccess Apache под виндами понимает?
Если да, то как сделать .htpasswd объясните пожалуйста!
Название: ну не авторизируется и все!
Отправлено: от 15 Сентября 2001, 18:58:18
Цитировать
Сообщение от Foshvad
Есно под виндами :(
Тогда, если можно, следующий вопрос:
как вообще из виндов можно вызвать пресловутое окошко авторизации?
.htaccess Apache под виндами понимает?
Если да, то как сделать .htpasswd объясните пожалуйста!


да, .htaccess под виндами понимает, и довольно приемлимо для работы(отладки)
Делается .htpasswd элементарно: Создается обыкновеннй текстовый файл с произвольным расширением и содержанием типа
user:password
user2:password2
где user- имя юзера, а password - соответственно пароль. А в .htaccess прописывается путь к данному файлу. Привожу работающий у меня под виндой вариант .htaccess:

order deny,allow
AuthName "ADMINISTRATION"
AuthType Basic
AuthUserFile /usr/local/apache/conf/passwd
Allow from all
require user webmaster
Название: ну не авторизируется и все!
Отправлено: Foshvad от 16 Сентября 2001, 20:09:31
Спасибо за подробный ответ!

Чтоб вызвать окно авторизации оказалось достаточным вместо
Header("HTTP/1.0 401 Unauthorized");
слать Header((\'status: 401 Unauthorized\');
 

Для полного счастья переставил php как модуль (http://detail.phpclub.net/soft/01-04-20/) и к PHP претензий больше нет, но на счет Apache все же есть небольшой вопрос: (прошу прощения за оффтопик, но это как продолжение темы)

каким символом разделяются имя пользователя и пароль в .htaccess? :-[      ]
пробел и косая не подходят :( и Apache твердит:          

[Sun Sep 16 18:51:30 2001] [error] [client 127.0.0.1] access to / failed, reason: user user not allowed access


P.S. Может кто знает, как разрешить в .htaccess обращать без авторизации только к определенным файлам, или файлам, находящимся в определенной директории.
Спасибо!
Название: ну не авторизируется и все!
Отправлено: NAS от 16 Сентября 2001, 20:23:50
Цитировать
Сообщение от Foshvad
Спасибо за подробный ответ!


 


каким символом разделяются имя пользователя и пароль в .htaccess? :-[      ]
пробел и косая не подходят :( и Apache твердит:          
 


Пробуй :
Название: ну не авторизируется и все!
Отправлено: Foshvad от 16 Сентября 2001, 20:53:19
: я в первую очередь попробовал (написать забыл)
Пробовал с помощью htpasswd.exe .htpasswd делать - результат тот же.

А как Apache понимает, что пароль "закончился"?
По "\\r\\n" или "\\n" ?

Я уже пробовал юзера без пароля, все равно не пускает! :(

(жалобно ): Может в .htaccess что-то не то?..


order deny,allow
AuthName "ADMINISTRATION"
AuthType Basic
AuthUserFile путь к .htpasswd
Allow from all
require user webmaster
Название: ну не авторизируется и все!
Отправлено: Foshvad от 17 Сентября 2001, 21:36:25
Не знаю, с чем это связано, то все заработало после того, как в .htaccess я заменил строчку

require user webmaster

на



require valid-user



кстати, кто-нить знает, как разрешить в .htaccess доступ к определенным файлам и директориям без пароля?
Название: Tage Problemma
Отправлено: от 19 Июня 2002, 13:23:22
Tebe Slu4eem ne otwetili
4toto ne rabotae i ta ge oschibka
po xodu eto ne APACHE a 4toto drugoe ja sam koro4e ne snaju
esli ti w kurse daj snat\'
bermud@mail.ru
Название: ну не авторизируется и все!
Отправлено: AlieN от 19 Июня 2002, 13:29:10
Ребята, что вы тормозите:
PHP прикручен к апаче как СГИ

переделай настрочки апача связанные с пхп:

LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php .php3 .php4 .phtml


Вот вам немного мана(С:\\PHP\\INSTALL.TXT)

To do this, you should move php4ts.dll to the windows/system (for Windows 9x/Me)
or winnt/system32 (for Windows NT/2000/XP) directory, overwriting any
older file. Then you should add the following three lines to your Apache
conf file: (swap c:/php/ for your PHP install path)

LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php

If you wish to install PHP as a CGI binary, (the sapi is much better)
you need to enable the apache security fix in your php.ini by
setting cgi.force_redirect = 1. Then, insert these lines to your conf file:

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
Название: ну не авторизируется и все!
Отправлено: AlieN от 19 Июня 2002, 13:30:48
Цитировать
Нужен реальный сервер(linux, FreeBsd).

Ха, там тоже такое может случиться,если скрипты пхп выполняться к примеру через "suexec"