
02.05.2009, 03:39
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
С нами:
9288386
Репутация:
536
|
|
Может у кого-нить есть офлайн версия мануала http://ru.php.net/manual/ru/index.php..
Просто сейчас с интернетом проблемы... Или посоветуйте другой справочник, так чтобы удобный был, ну типа поиск по функциям и т.д...)
|
|
|

02.05.2009, 08:21
|
|
Познающий
Регистрация: 03.03.2009
Сообщений: 86
С нами:
9047791
Репутация:
258
|
|
|
|
|

02.05.2009, 14:32
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
Подскажите как определить, работает ли глобальный массив $_SERVER['PHP_AUTH_USER'] на хостинге?
Значит есть basic авторизация на php, но естественно она работает только на каждом втором хосте, можно ли заранее определить где она работает, а где нет?
Пробовал через function_exist(), результата никакого, кажется она только с функциями работает, а не с глобальными массивами.
|
|
|

02.05.2009, 15:00
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами:
9223466
Репутация:
3171
|
|
Сообщение от Nightmarе
Подскажите как определить, работает ли глобальный массив $_SERVER['PHP_AUTH_USER'] на хостинге?
Значит есть basic авторизация на php, но естественно она работает только на каждом втором хосте, можно ли заранее определить где она работает, а где нет?
Пробовал через function_exist(), результата никакого, кажется она только с функциями работает, а не с глобальными массивами.
Помоему,самы простой вариант,написать хостеру перед покупкой хоста,и спросить.Да и вообще не юзать бейсик-аутх,выдери вот из античат-шела авторизацию и все.
|
|
|

02.05.2009, 15:35
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 850
С нами:
9975266
Репутация:
1916
|
|
Ну какбэ isset
PHP код:
if (isset($_SERVER['PHP_AUTH_USER'])) echo 'ок';
else echo 'не алё';
или на худой конец вот так array_key_exists
PHP код:
if (array_key_exists('PHP_AUTH_USER', $_SERVER)) echo 'ок';
else echo 'не алё';
или print_r($_SERVER); и смотреть что имеем
|
|
|

02.05.2009, 18:30
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
Сообщение от .:EnoT:.
Ну какбэ isset
PHP код:
if (isset($_SERVER['PHP_AUTH_USER'])) echo 'ок';
else echo 'не алё';
или на худой конец вот так array_key_exists
PHP код:
if (array_key_exists('PHP_AUTH_USER', $_SERVER)) echo 'ок';
else echo 'не алё';
или print_r($_SERVER); и смотреть что имеем
К сожалению пример не рабочий, будет ок только после успешной авторизации, а если он не работает, то так и будет выдавать ошибку типа пасс неверный...
|
|
|

02.05.2009, 19:00
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
PHP код:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Текст, отправляемый в том случае,
если пользователь нажал кнопку Cancel';
exit;
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>Вы ввели пароль {$_SERVER['PHP_AUTH_PW']}.</p>";
}
?>
http://ru2.php.net/features.http-auth
как заставить работать в CGI:
http://www.besthostratings.com/articles/http-auth-php-cgi.html
Последний раз редактировалось Pashkela; 02.05.2009 в 19:02..
|
|
|

02.05.2009, 19:08
|
|
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
С нами:
9477026
Репутация:
2362
|
|
Nightmarе, HTTP-Аутентификация работает если пхп прикручен, как модуль Apache'a. Если как cgi-обработчик - тогда никак.
Сделал небольшое сравнение. Вывел массив $_SERVER на 2х серваках (1 - модуль, 2 - cgi)
В первом случае REQUEST_URI, SCRIPT_NAME совпадали. Во втором SCRIPT_NAME - путь до пхп. + во втором случае был еще 1 параметр: [REDIRECT_HANDLER] => php-cgi.
Можно еще посмотреть в phpinfo параметр Server API.
+ если модуль, тогда есть функции для работы с сервером Apache
http://ru.php.net/manual/ru/ref.apache.php
Те можно просто проверить через function_exists.
|
|
|

02.05.2009, 23:44
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
С нами:
10018169
Репутация:
1680
|
|
Подскажите плз по поводу php авторизации по сессиям, вот мой код:
Код:
if($auth==1){if(@$_POST['login']==$name && @$_POST['password']==$pass)$_SESSION['lol']=1;}else $_SESSION['lol']='1';
if($_SESSION['lol']==0){
Вы не авторизированны... форма для авторизации бла бла бла...
die;
}
// Рабочий код в случае успешной авторизации.
echo "работает";
if(isset($_GET['ass']))
{
echo "нужная команда";
}
Всё вроде как работает, но при попытке передать скрипту что нибудь POST или GET параметром вся авторизация трётся, и опять выскакивает табличка ввести логин и пасс.
В данном примере если просто обратиться script.php ввести логин и пасс то успешно войдём.
Но если после успешного входа сослаться:
script.php?ass
То вылетаем обратно.
Что тут можно сделать?
|
|
|

02.05.2009, 23:48
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
С нами:
9497186
Репутация:
1304
|
|
Nightmarе session_start() в начало скрипта?)
И добавить в первое условие
|| $_SESSION['lol']==1
Последний раз редактировалось Gifts; 02.05.2009 в 23:51..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|