Frage

i am trying to read the content of a non-public Google Site Page. I wrote the php Script for reading a public Google Sites Page, so it is using php's file_get_content().

Is there a way to login the php script so it is able to access the non public Google Sites Page?

War es hilfreich?

Lösung

Found some old code that does something similar. Should get you started

/* Prepare cURL */
$ch = curl_init();  

// set these according to the login form
$login_query = http_build_query(
                    array('username'=> 'username',
                        'password' => 'your_password',
                        'login' => 'log in'));

/* Set options */
curl_setopt($ch, CURLOPT_URL, 'www.yourpage.com');
curl_setopt($ch, CURLOPT_REFERER, 'www.yourpage.com'); //set this to whatever the normal login does
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3'); //set to something resonable
curl_setopt($ch, CURLOPT_TIMEOUT, 120);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies/cookie.txt'); // make sure directory is writable
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies/cookie.txt');
curl_setopt($ch, CURLOPT_POSTFIELDS, $login_query);
curl_setopt($ch, CURLOPT_POST, 1);

$urlcontent = utf8_encode(curl_exec($ch));
$curl_info = curl_getinfo($ch);

// at this point you are logged in... get your page

/* Initiate cURL request */
curl_setopt($ch, CURLOPT_URL, 'www.yourpage.com/what-you-want');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3');
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, 'www.yourpage.com');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies/cookie.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

/* Send cURL request */
$result_data = utf8_encode(curl_exec($ch));
$curl_info = curl_getinfo($ch);

/* Close cURL */
curl_close($ch);

/* Handle result if any */
if ($this->curl_info['http_code'] == 200)
{
    // at this point your page is in $result_data
}

Andere Tipps

If you want to access a page that requires some sort of posts, sessions or anything, i'd suggest you to use CURL instead of file_get_contents. You can read more about it on the documentation.

If it will work for googles non-public pages, im unsure of. It can turn into a great challenge though :-)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top