За последние 24 часа нас посетили 51398 программистов и 1758 роботов. Сейчас ищут 673 программиста ...

Авторизация

Тема в разделе "PHP для новичков", создана пользователем minva, 20 фев 2008.

  1. minva

    minva Активный пользователь

    С нами с:
    20 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Соединяюсь при помощи сокетов с неким сервером. Получаю от него ответ
    Код (Text):
    1. HTTP/1.1 401 Unauthorized
    2. Content-type: text/html
    3. WWW-Authenticate: Basic realm="FastReport Server"
    4. Content-length: 0
    Этот ответ отсылается браузеру в виде заголовков. Примитивный код такой
    Код (Text):
    1. $EndHeader = false;
    2. while ($out = socket_read ($socket, 2048, PHP_NORMAL_READ)) {
    3.     if ($EndHeader)
    4.     {echo $out;}
    5.     else
    6.     {Header($out);
    7.      }
    8.  $EndHeader = true;
    9. }
    Ожидаю появления диалога авторизации в браузере, но его нет. Заголоки, которые приходят в браузер такие
    Код (Text):
    1. HTTP/1.x 401 Unauthorized
    2. Date: Wed, 20 Feb 2008 09:04:27 GMT
    3. Server: Apache/2.0.40 (Win32) PHP/4.2.3
    4. Accept-Ranges: bytes
    5. X-Powered-By: PHP/4.2.3
    6. Content-Length: 124
    7. Content-Type: text/html; charset=WINDOWS-1251
    8. X-Cache: MISS from server.local.net
    9. Proxy-Connection: keep-alive
    Два вопроса
    1. Как заставить браузер показать окно авторизации
    2. Что-то не нравится мне код, кодорым я ответ сервера обрабатываю. Как правильно отделить заголовок от контента. Про \n знаю, собственно на этом цикл и построен. но что-то сомнения берут в его правильности
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    юзай curl() а не сокеты
     
  3. minva

    minva Активный пользователь

    С нами с:
    20 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    Я конечно посмотрю, что это, но вопрос остался... Почему браузер не показал отправленные ему заголовки, а показал что-то другое
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а как ты броузеру то посылаешь?
     
  5. minva

    minva Активный пользователь

    С нами с:
    20 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    НУ, вот
    Header($out);
    если я напишу вместо этого echo $out то и увижу ожидаемый текст.
    Или я что-то тут недопонимаю???
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    а внутри то что? я ж не телепат?
     
  7. minva

    minva Активный пользователь

    С нами с:
    20 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    В первом посте же написано!
    Код (Text):
    1. HTTP/1.1 401 Unauthorized
    2. Content-type: text/html
    3. WWW-Authenticate: Basic realm="FastReport Server"
    4. Content-length: 0
    Или может это построчно надо отсылать?
     
  8. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Один вызов header - один заголовок.
     
  9. minva

    minva Активный пользователь

    С нами с:
    20 фев 2008
    Сообщения:
    5
    Симпатии:
    0
    >Один вызов header - один заголовок.

    Еще более запутал. Имел ввиду Один вызов header -одна строка заголовка?
     
  10. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Я же сказал, заголовок, а не заголовки. Значит одна строка.