Выдернуть страницу из аккаунта - задачка на php - Форум успешных вебмастеров - GoFuckBiz.com - Страница 3
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB88.6852
BTC/USD68845.3439
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 15.12.2010, 03:31
Start Post: Выдернуть страницу из аккаунта - задачка на php 
  #21
drivehunter
AdCoin Россия
 
Аватар для drivehunter
 
Регистрация: 10.07.2008
Сообщений: 455
Бабло: $40675
Отправить сообщение для drivehunter с помощью Telegram
Question

Народ, помогите плз - перечитал кучу всего про POST/GET запросы на php, но скрипт работает тока наполовину.

Суть в том, что нуна залогиниться на сайте и выдернуть стату из аккаунта, чтоб распарсить. Кусок скрипта:

PHP код:
if ($fp fsockopen('site.com'80$errno$errstr10)) {
    
fputs($fp"POST /login.html HTTP/1.0\n".
        
"User-Agent: $useragent\n".
        
"Referer: http://site.com/login.html\n".
        
"Cookie: PHPSESSID=****************************\n".
        
"Content-Type: application/x-www-form-urlencoded\n".
        
"Content-Length: 25\n\n".
        
"login=LOGIN&password=PASS");
    
    
fputs($fp"GET /stat.html HTTP/1.0\n".
        
"Host: site.com\n".
        
"User-Agent: $useragent\n".
        
"Referer: http://site.com/\n".
        
"Cookie: PHPSESSID=*******************************");

    echo 
'<pre>';
    while(!
feof($fp)) echo fgets($fp);
    echo 
'</pre>';
    
    
fclose($fp);

Первый fputs нормально логинится в аккаунт, возвращает "302 Found" и "Location: ./stat.html".

Дальше остается загрузить этот самый stat.html и вот тут затык - GET-запрос не отправляется, хоть ты тресни - кучу вариантов перепробовал уже.
Соответственно и результат хост не возвращает - отладочный "echo fgets($fp)" ничо не выводит.

Подскажите ченить или ткните носом в нормальный док.
drivehunter вне форума  
Старый 17.12.2010, 17:45   #22
false
true
 
Регистрация: 26.09.2007
Сообщений: 234
Бабло: $44615
По умолчанию

PHP код:
function request($url$post=false$timeout=70$headers=false) {
    
$ch curl_init();
    if(
$post) {
        
$post is_array($post)?http_build_query($post):$post;
        
curl_setopt($chCURLOPT_POST1);
        
curl_setopt($chCURLOPT_POSTFIELDS$post);
    }
    if(
$headers)
        
curl_setopt($chCURLOPT_HEADER1);
    
curl_setopt($chCURLOPT_TIMEOUT$timeout);
    
curl_setopt($chCURLOPT_URL$url);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);
    
curl_setopt($chCURLOPT_FAILONERROR1);
    
$content curl_exec($ch);
    
$error curl_error($ch);
    if(
$error) {
        echo 
"CURL ERROR $url: ".$error."\n";
        return 
false;
    }
    return 
$content;

false вне форума  
Старый 17.12.2010, 18:03   #23
drivehunter
AdCoin Россия
 
Аватар для drivehunter
 
Регистрация: 10.07.2008
Сообщений: 455
Бабло: $40675
ТС -->
Отправить сообщение для drivehunter с помощью Telegram
автор темы ТС По умолчанию

Цитата:
Сообщение от incognito Посмотреть сообщение
а что ты в переменной "$cookie" передаешь???
передавал $cookie = "PHPSESSID=****************************;"

Цитата:
Сообщение от incognito Посмотреть сообщение
PHP код:
curl_setopt($chCURLOPT_COOKIEJAR"cookie/cookie.txt"); 
curl_setopt($chCURLOPT_COOKIEFILE"cookie/cookie.txt"); 
указывают где будут лежать куки и cUrl самостоятельно ими оперирует(создаст файл запишет в него куки и затем будет передавать серверу и сохранять новые от сервера).
так и сделал. с путями разобрался - все работает.
еще раз спасибо

задача решена, сабж можно закрывать.
drivehunter вне форума  
Старый 17.12.2010, 18:13   #24
drivehunter
AdCoin Россия
 
Аватар для drivehunter
 
Регистрация: 10.07.2008
Сообщений: 455
Бабло: $40675
ТС -->
Отправить сообщение для drivehunter с помощью Telegram
автор темы ТС Thumbs up

ребят, всем сенкс за помощь!
drivehunter вне форума