Saving images is only available at login

I am having trouble downloading images when registering on a website that requires you to be logged in. Images can only be viewed upon entering the site, but you cannot view them directly in the browser if you copy its location to a tab / new window (it redirects to the error page - so I assume that the containing folder was .htaccess-ed) .

In any case, the code that I have below allows me to log in and get the HTML content, which works well, but I can’t capture the images ... that’s where I need help!

<?
// curl.php

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/gif;q=0.8,image/x-bitmap;q=0.8,image/jpeg;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, $this->cookieJar); 
        curl_setopt($this->curl, CURLOPT_COOKIEFILE, $this->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); 
    } 
} 

?>

And below is the page that uses it.

<?
// data.php

include('curl.php'); 
$curl = new Curl(); 

$url = "http://domain.com/login.php"; 
$newURL = "http://domain.com/go_here.php"; 

$username = "user";
$password = "pass";

$fields = "user=$username&pass=$password"; 

// Calling URL 
$referer = "http://domain.com/refering_page.php"; 

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

$html = $curl->get($newURL);
echo $html;

?>

URL- $newURL, - , . -, , , 405 / 406 ( , ).

!

+3
2

,

.

, PHP- HTTP , .

Wireshark, . , 80. "follow TCP stream", HTTP .

, PHP script.

, . , , , , , PHP script cookie.

0

, (cookie), .

http-, .

0

Source: https://habr.com/ru/post/1749338/


All Articles