Страница 1 из 1

http авторизации методом PHP

Добавлено: Вт ноя 29, 2011 2:56 pm
kmm
Если админка организована, например так:

Код: Выделить всё

<?php
  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);
  header("Pragma: no-cache");
  if (!isset($_SERVER['PHP_AUTH_USER']) ||
      !($_SERVER['PHP_AUTH_USER']=='zloy') ||
      !($_SERVER['PHP_AUTH_PW']=='zloypass'))
  {
    header("WWW-Authenticate: Basic realm=\"Adm Zone\"");
    header("HTTP/1.0 401 Unauthorized");
    echo "Access denied";
    exit;
  }
?>
Задать настройки:

Код: Выделить всё

$host = 'exemple.com'; //ну тут понятно, сайт, где находиться защищенная зона
$path = '/admin'; //путь до нужной папки
$logins = 'logins.txt'; //файл с логинами
$passwords = 'passwords.txt'; //файл с паролями
$cookie = ''; //куки, если нужны
$referer = 'http://exemple.com/index.html'; //с какой страницы перешли, если нужно 
И написать функцию отправки запроса и получения тела странницы:

Код: Выделить всё

function http_auth($host, $path, $login, $password)
{
        global $cookie, $referer;
        $header = 'GET '.$path.' HTTP/1.1'."\r\n".
        'Host: '.$host."\r\n".
        'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 (.NET CLR 3.5.30729)'."\r\n".
        'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'."\r\n".
        'Accept-Language: ru,en-us;q=0.7,en;q=0.3'."\r\n".
        'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'."\r\n".
        'Keep-Alive: 115'."\r\n".
        'Connection: keep-alive'."\r\n";
        if($referer) $header .= 'Referer: '.$referer."\r\n";
        if($cookie) $header .= 'Cookie: '.$cookie."\r\n";
        $header .= 'Authorization: Basic '.base64_encode($login.':'.$password)."\r\n";
        $header .= 'Cache-Control: max-age=0'."\r\n"."\r\n";
        $f = fsockopen($host, 80);
        fputs($f, $header);
        $out = '';
        while(!feof($f))
                $out .= fread($f, 128);
        return $out;
} 

Re: http авторизации методом PHP

Добавлено: Пн апр 02, 2012 8:29 am
ZXDemon
Выделяйте код как PHP для удобочитаемости, в BB-коде code=php пропишите.

Re: http авторизации методом PHP

Добавлено: Пн апр 02, 2012 12:54 pm
mmkulikov
А как его выделять?
Можно что-то для примера

Re: http авторизации методом PHP

Добавлено: Пн апр 02, 2012 1:01 pm
ZXDemon
Пример:

Код: Выделить всё

<?php
  header("Cache-Control: no-store, no-cache, must-revalidate");
  header("Cache-Control: post-check=0, pre-check=0", false);
  header("Pragma: no-cache");
  if (!isset($_SERVER['PHP_AUTH_USER']) ||
      !($_SERVER['PHP_AUTH_USER']=='zloy') ||
      !($_SERVER['PHP_AUTH_PW']=='zloypass'))
  {
    header("WWW-Authenticate: Basic realm=\"Adm Zone\"");
    header("HTTP/1.0 401 Unauthorized");
    echo "Access denied";
    exit;
  }

?>
Если нужна подсветка других языков, то ставим дополнительный внутренний мод или внешний модуль для подсветки кода.
Я себе сделал в ТАКОМ виде.

Re: http авторизации методом PHP

Добавлено: Пн апр 02, 2012 1:12 pm
mmkulikov
А в какой момент это (BB-коде code=php) писать?
Как теги в редакторе?

Re: http авторизации методом PHP

Добавлено: Пн апр 02, 2012 1:15 pm
ZXDemon
Жмём кнопочку Code и дописываем =php после слова code

Re: http авторизации методом PHP

Добавлено: Пн апр 02, 2012 1:31 pm
mmkulikov
Вот. Век живи - век учись :-)
Спс.
А дополнительные где-то в админке "закопаны"?

Re: http авторизации методом PHP

Добавлено: Пн апр 02, 2012 1:49 pm
ZXDemon
mmkulikov писал(а):А дополнительные где-то в админке "закопаны"?
Администраторский раздел > СООБЩЕНИЯ > BBCodes
Там можно создавать свои варианты BB-кодов.