Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Пхп и авторизация
цитата
31/10/11 в 08:04
 Kors
подскажите, можно ли сделать следующее:
на странице юзер вводит логин и пароль, и его перекидывает на закрытую htpasswd директорию сразу с логином и паролем, не требуя их ввода еще раз.
понятно что можно пропустить через скрипт location('user:pswd@www.site.com/protected/');
но неохота в строке адреса все светить...
как то еще можно?
спросил бы у яндекса сам, но не могу придумать как сформулировать запрос...
цитата
31/10/11 в 08:15
 LeadFarmer
как-то поставили мне такую задачу. долго думал, гуглил. ниче не получилось. геморой с этой basic авторизацией в общем.
цитата
31/10/11 в 10:32
 Sterx
cURL'ом ходить только
цитата
31/10/11 в 10:49
 Kors

это как?

ps^ кажется нашел что это такое...

ура, есть!

cURL support enabled
cURL Information libcurl/7.19.7 OpenSSL/0.9.7e zlib/1.2.3

буду пробовать...

не, это не то icon_sad.gif
цитата
31/10/11 в 12:17
 kodek
Сходу нагуглился вот такой вариант. Не знаю, работает или нет.
Нашёл вот тут.
Цитата:
Basic-авторизация через PHP

Тут тоже ничего сложного нет. Привожу код функции, которая авторизуется по указанному адресу с указанными логином-паролем и возвращает контент сайта, доступный после авторизации:

Код:
<?
   function do_authorize($host, $uri, $user, $pwd) {
      $out  = "GET $uri HTTP/1.1\r\n";
      $out .= "Host: ".$host."\r\n";
      $out .= "Connection: Close\r\n";
      $out .= 'Authorization: Basic '.base64_encode($user.':'.$pwd)."\r\n";
      $out .= "\r\n";

      if (!$sock = @fsockopen($host, 80, $errno, $errstr, 10)) {
         return 0;
      }
      fwrite($sock, $out);
      $data = '';
      while (!feof($sock)) {
         $data .= fgets($sock);
      }
      fclose($sock);
      return $data;
   }

   if ($source = do_authorize('localhost','/test.php', 'novice', 'novice')) {
      echo $source;
   } else {
      echo "I can't connect!";
   }
?>


Я таким образом написал скрипт для проверки трафика у своего интернет-провайдера, который как раз предоставляет такую информацию через сайт с basic-аутентификацией, чтобы не лазить туда вручную постоянно.
цитата
31/10/11 в 12:22
 Alexandur
kodek писал:
Сходу нагуглился вот такой вариант. Не знаю, работает или нет.
Нашёл вот тут.

Это авторизация сервера, а не пользователя. Тогда придётся все данные через сервер пропускать.

Вроде идел решение на javascript, если надо - поищу.
цитата
31/10/11 в 12:37
 LeadFarmer
gimcnuk писал:
Вроде идел решение на javascript, если надо - поищу.

http://www.peej.co.uk/articles/http-auth-with-html-forms.html
тут есть что-то на эту тему. попробуйте
цитата
31/10/11 в 13:08
 Kors
вобщем CURL не подходит...
kodek: этот вариант тоже, т.к. он также просто читает и выводит файл, а мне надо перенаправить юзера без повторного ввода логин-пароля.
написал такой скрипт, но странное дело - в хроме все работает как надо, в ИЕ и файрфоксе если хоть одно поле пустое - ошибка...
<?
if (isset($_POST['login']) && isset($_POST['Pswd']))
{
$login = $_POST['login'];
$pswd = $_POST['Pswd'];
header("Location: http://$login:$pswd@www.сайт.ru/admin/\n\n");
}
else
{
header("Location: http://www.сайт.ru/index.php\n\n");
}
?>
LeadFarmer: попробую так тоже...


Эта страница в полной версии