Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > передать логин/пароль сайту


Автор: onikys 17.7.2010, 12:19
Как передать значение логина и пароля на сайт, что б при обращении к нему с помощью file_get_contents(); данные выводились как будто я уже зашел на сайт?

Автор: bars80080 17.7.2010, 15:35
ищем и читаем cURL

Автор: onikys 17.7.2010, 16:48
Чето не выходит...

возвращает результат,но без авторизации............

Проверьте код, у вас работает?

Код

$post = Array('login_name' => 'tests', 'login_password' => '111111');// логин проверял работает
        $headers   = Array();
        $headers[] = "Content-type: application/x-www-form-urlencoded";

        $content = make_http_post_request('http://allday.ru/index.php?newsid=332443', $post, false, $headers, 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.6.30 Version/10.60');
          
        $content = iconv('Windows-1251','UTF-8',$content);
        
        echo $content; 
        
 
        function make_http_post_request($url, $post, $ssl = false, $headers = '', $uagent = '') {
         if (empty($url)) {
             return false;
         }
        
         $_post = Array();
        
         if (is_array($post)) {
             foreach ($post as $name => $value) {
                 $_post[] = $name.'='.urlencode($value); 
             }
         }
        
         $ch = curl_init($url);
        
         if ($ssl) { // если соединяемся с https
        
             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        
         }
        
         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
         curl_setopt($ch, CURLOPT_POST, 1);
         curl_setopt($ch, CURLOPT_HEADER, 0);
         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        
         if (is_array($post)) {
             curl_setopt($ch, CURLOPT_POSTFIELDS, join('&', $_post));
         }
        
         if (is_array($headers)) { // если заданы какие-то заголовки для браузера
             curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
         }
        
         if (!empty($uagent)) { // если задан UserAgent
             curl_setopt($ch, CURLOPT_USERAGENT, $uagent);
         }
        
         $result = curl_exec($ch);
        
         if (curl_errno($ch) != 0 && empty($result)) {
             $result = false;
         }
        
         //curl_close($ch);
        
         return $result;
        }

Автор: Photon 18.7.2010, 02:18
onikys,  а где в твоём коде авторизация?
И самый главный вопрос: а авторизация-то какая?
Если обычная, как и на этом сайте, то надо всего-лишь через тот же cURL куки сохранять, а потом при каждом запросе посылать.
Если так называемая HTTP-авторизация, то это другое дело..  Тоже куча примеров в инете..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)