user1359575
user1359575

Reputation: 99

file_get_contents and browser session

I have the following code:

$homepage = file_get_contents("https://example.com/specific_page");
echo $homepage;

The browser already has a session of the site that I need access to, so if I open the url in new tab, the page will be properly loaded.

The issue is that the php script, redirects me to "You are not logged in" page. Note that the url is available even after I restart the browser.

Any ideas how to get content without writing a code that logs in to the site?

Upvotes: 1

Views: 1797

Answers (2)

Will Vousden
Will Vousden

Reputation: 33408

It would be an enormous security issue if a website could gain access to your data on arbitrary external websites. Imagine this: file_get_contents('https://yourbank.com/all-your-details').

The only way you can do this is to ask the user for his/her login credentials on the external website and log in manually. This will be unreliable, though, since the authentication process could change (and it's terribly rude to ask someone for his/her password).

This is generally what web service APIs are used for, but if there's none available for the site you're interested in, you're kind of stuck.


If you already know the login credentials for the website, then you could hardcode them into the script using the approach outlined by Blauesocke, but this won't work if the details are unique to the current user.

Upvotes: 3

Thomas Kekeisen
Thomas Kekeisen

Reputation: 4406

PHP runs serversided so it has its own session handling, there is no link to your browsers session. You can use cURL and options like CURLOPT_COOKIEJAR to do this. With cURL you can login via PHP and keep the PHP session of the website you are requesting. You will find a bunch of examples in the cURL documentation I linked.

Upvotes: 3

Related Questions