Скрининг экрана и сеансы PHP

Хорошо, все еще новичок в экране.

Мне удалось войти на сайт, который мне нужен, но теперь как перенаправить на другую страницу? После того, как я вхожу в систему, я пытаюсь выполнить другой запрос GET на нужную мне страницу, но у меня есть перенаправление, которое возвращает меня на страницу входа.

Поэтому я думаю, что переменные SESSION не передаются, как я могу это сделать?

Проблема:

Даже если я размещаю URL-адрес второй страницы, он все-таки перенаправляет меня обратно на страницу входа в систему, если я уже не зашел в систему, но код очистки экрана не позволяет передавать данные SESSION?

Я нашел этот код с другого вопроса скрепера экрана здесь @stack

class Curl { public $cookieJar = ""; public function __construct($cookieJarFile = 'cookies.txt') { $this->cookieJar = $cookieJarFile; } function setup() { $header = array(); $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; $header[] = "Cache-Control: max-age=0"; $header[] = "Connection: keep-alive"; $header[] = "Keep-Alive: 300"; $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $header[] = "Accept-Language: en-us,en;q=0.5"; $header[] = "Pragma: "; // browsers keep this blank. curl_setopt($this->curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7'); curl_setopt($this->curl, CURLOPT_HTTPHEADER, $header); curl_setopt($this->curl, CURLOPT_COOKIEJAR, $cookieJar); curl_setopt($this->curl, CURLOPT_COOKIEFILE, $cookieJar); curl_setopt($this->curl, CURLOPT_AUTOREFERER, true); curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true); } function get($url) { $this->curl = curl_init($url); $this->setup(); return $this->request(); } function getAll($reg, $str) { preg_match_all($reg, $str, $matches); return $matches[1]; } function postForm($url, $fields, $referer = '') { $this->curl = curl_init($url); $this->setup(); curl_setopt($this->curl, CURLOPT_URL, $url); curl_setopt($this->curl, CURLOPT_POST, 1); curl_setopt($this->curl, CURLOPT_REFERER, $referer); curl_setopt($this->curl, CURLOPT_POSTFIELDS, $fields); return $this->request(); } function getInfo($info) { $info = ($info == 'lasturl') ? curl_getinfo($this->curl, CURLINFO_EFFECTIVE_URL) : curl_getinfo($this->curl, $info); return $info; } function request() { return curl_exec($this->curl); } } 

Вызов класса

 include('/var/www/html/curl.php'); $curl = new Curl(); $url = "here.com"; $newURL = "here.com/newpage.php"; $fields = "usr=user1&pass=PassWord"; // Calling URL $referer = "http://here.com/index.php"; $html = $curl->postForm($url, $fields, $referer); $html = $curl->get($newURL); echo $html; // takes me back to $url instead of $newURL в include('/var/www/html/curl.php'); $curl = new Curl(); $url = "here.com"; $newURL = "here.com/newpage.php"; $fields = "usr=user1&pass=PassWord"; // Calling URL $referer = "http://here.com/index.php"; $html = $curl->postForm($url, $fields, $referer); $html = $curl->get($newURL); echo $html; // takes me back to $url instead of $newURL 

Следующие строки не используют «$ this», а $ cookieJar не находится в локальной области:

 curl_setopt($this->curl, CURLOPT_COOKIEJAR, $cookieJar); curl_setopt($this->curl, CURLOPT_COOKIEFILE, $cookieJar); 

Поэтому он должен выглядеть так:

  curl_setopt($this->curl, CURLOPT_COOKIEJAR, $this->cookieJar); curl_setopt($this->curl, CURLOPT_COOKIEFILE, $this->cookieJar); 

Если это не решит проблему, попробуйте и сделайте только сообщение:

$curl->postForm($url, $fields, $referer);

и не

$curl->get($newURL)

Затем проверьте, содержит ли файл cookie.txt что-нибудь? Создается ли он? Дайте нам знать результаты, так как вам сложно быстро протестировать ваш код без фактического URL-адреса.

Если файл cookie.txt не создается, вы можете почти гарантировать, что сеанс не поддерживается между запросами.

может быть, пример не правильный .. но из его взглядов домен меняется .. поэтому here.com сессия не существует на there.com

Вероятно, сайт пытается сохранить идентификатор сеанса в файле cookie. Однако у вас есть завиток, чтобы использовать файлы cookie через файл "cookies.txt". Итак, моя первая мысль была – что в файле cookie.txt? Есть ли у сценария разрешения на создание этого файла?

Это работает отлично, используя $ curl-> get ($ newURL) вместо $ curl-> postForm ($ url, $ fields, $ referer);