Cookie и PHP

DowJones

Писатель
Регистрация
11 Апр 2012
Сообщения
1
Реакции
0
Хотелось бы начать с того что я начинающий кодер и многое не ясно пока.
Ближе к делу:
Я написал небольшой скриптик на PHP, которые листает страницы сайта и ищет на нем информацию.
Но я столкнулся с проблемой, на сайте есть страницы, доступ к которым предоставляется, только зарегистрированным пользователям.
От сюда у меня вопрос, может ли PHP скрипт, подсунуть мои куки сайту?
Если да, то как это реализовать?
Если нет, то возможно можно выполнить авторизацию (за место подсовывания печенек сайту)?

P.S.
Использую Denwer.

P.P.S.
Было бы не полохо, писать как-можно проще и доступнее.
 
Тоже не совсем понял.
curl_setopt($ch, CURLOPT_COOKIE, $cook);
в $cook я указываю что?
Содержимое?
Просто сама печенька состоит из 6 полей у меня
Имя, Содержимое, Узел, Путь, Посылать при, Срок действия истекает


 
Ну дали веть вектор движения в чем проблема ?
Или опять токи готовое решение нужно и вы типо по нему все поймете а не поймете так работает и ладно !?

1) Курим маны по cURL
2) Пишем маленькую функцию для работы.
3) Берем тот же хром и смотрим на заголовки при авторизации.
4) Реализовываем авторизацию
5) Гуляем по сайту авторизованым.

Это вам нифиге не file_get_contents c переменными из цикла.

Функцию примерную я давал уже... поищите в этой ветке... Вроди про юкоз что то было. Там к стати и авторизация идет вам как пример.
По сути ничего сложного там нет. 1 раз сами сделаете и поймете суть.

Удачи.

PS. Непонятно только 1 - почему не почитали просто темы в ветке ? Тут чего только нет. На все что хотите ответ найдете. Просто подозреваю что думать и вникать нет либо времени либо желания. Если нет времени - заказывайте, если нет желания бросайте вы это гиблое дело только время убьете.
 
Прочел уже более 10 мануалов по curl
везде ссылаются на файл cookie.txt
и ни где не написано точно что там должно быть, исключая очевидное, что там сам кук.
как записать куки в этот фаил, в каком виде?
Авторизоваться не получится, стоит капча.
остается только передача кук.
Установил плагин cookie manager+ для фокса.
он отображает куки, и даже копирует их в буфер.
в таком виде
Код:
Host:                сайт.com.ua
Name:                сайт
Path:                /
Content:              228%2F%25%2FDowJones%2F%25%2Fbdb6729e5ad1960цензура4336fdec%2F%25%2F0
Content raw:          228%2F%25%2FDowJones%2F%25%2Fbdb6729e5ad1960цензура4336fdec%2F%25%2F0
Expires:              В конце сессии
Expires raw:          0
Send for:            Любом типе соединения
Send for raw:        false
Created:              Saturday, April 14, 2012 12:12:42 PM
Created raw:          1334391162280000
Last accessed:        Sunday, April 15, 2012 2:19:31 AM
Last accessed raw:    1334441971422000
HTTP only:            No
HTTP only raw:        false
This domain only:    No
This domain only raw: false
Policy:              no information available
Policy raw:          0
Status:              no information available
Status raw:          0
---
 
Попробовал так, не хочет!
Может я где ошибся? или в cookie.txt пишу не то что надо?

PHP:
<?php
set_time_limit(1*10);
error_reporting(0);
ob_start();
for($i=1;$i<=9;$i++)
{
  for($j=1;$j<=499;$j++)
  {
        $url="http://сайт.домен/страница.php?гет1=2&гет2=$i&гет3=$j";
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt ($ch, CURLOPT_VERBOSE, 2);
        curl_setopt ($ch, CURLOPT_ENCODING, 0);
        curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
        curl_setopt ($ch, CURLOPT_COOKIEFILE, "cookie.txt");
        curl_setopt ($ch, CURLOPT_COOKIEJAR, "cookie.txt");
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt ($ch, CURLOPT_FAILONERROR, 1);
        curl_setopt ($ch, CURLOPT_HEADER, 1);
        curl_setopt ($ch, CURLINFO_HEADER_OUT, 1);
        curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30);
        $text = file_get_contents($url);
        echo "$text<br>";
        if (preg_match("/Что-то/i", "$text")) {
            echo "Вхождение найдено. $url <br>";
        }
        curl_close($ch);
    }
}
?>
 
PHP:
$PagesContent = urlGetContents("http://ya.ru");

function urlGetContents($url, $errCount = 1)
{
    global $DebugMode, $UseProxy;
    if ($DebugMode)
        echo "Getting $url<br>\n";
    
	if( $curl = curl_init() )
	{
        curl_setopt_array($curl, array(
            CURLOPT_URL                 => $url,		
		    CURLOPT_COOKIE              => file_get_contents('cookie.txt'),        // Устанавливаем куки
            CURLOPT_USERAGENT           => "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)",
            #CURLOPT_TIMEOUT             => 60*20,                                 // Время на скачку, по превышению - обрыв и ошибка 
		    CURLOPT_RETURNTRANSFER      => true,                                   // Скачанные данные не выводить поток
		    CURLOPT_FOLLOWLOCATION      => true                                    // следовать по редиректам Location 		
            )
        );
          
        #
        if ($UseProxy)
        { 
            curl_setopt($curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
            curl_setopt($curl, CURLOPT_PROXY, '127.0.0.1:8080');
        }    
        #

        $content = curl_exec($curl);
        $answerCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
		$lastCurlError = curl_error($curl); 
		curl_close($curl);
		
        if ($answerCode != 200)
            // 2-я и 3-я попытка перед возвратом ошибки  
            return ( ($errCount < 3) ? urlGetContents($url, ++$errCount) : false);
        else 
            return $content;
	}
	else
	   return false; 
}
файл cookie.txt:
Код:
fuid01=463b614a000c02e0.iFgHe8XCCWQ11xLD2wCZMDWNHyEh52lFtCnsL16ueUB5We2BdiYeN3eI_VkMTOziqK5jZauWOtRwL6WjD_lKDc6cDOsnlrecHumBg_ZHHblb8g1hPKg-4hD3LpJfqxVi; yandexuid=2035368501238532173; L=XGhIUXlZBkVjelgDRVNHYHt8DnZ3Q3xaTAktIScIBSpgLhk8ODImJjI9Xy0OAjsDDHQSO0JeDT0GdxsGEhwtKQ==.1331560579.9291.294463.f72fb853d2bf5d59b9104ad577a2cd66; my=YygBqCIA; yp=1638812393.sp.#1646920579.udn.VGVtcFN3cA==#2147483647.ygo.10274:213; yandex_gid=213; yabs-frequency=/3/maG70vWC9S541mEO32S0/
 
Таки получилось у меня собрать свой скрипт. Работает :D


Всем спасибо!
 
Назад
Сверху