file_get_contents和浏览器会话

时间:2013-01-06 23:18:46

标签: php external file-get-contents

我有以下代码:

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

浏览器已经有我需要访问的网站会话,所以如果我在新标签页面中打开网址,页面将被正确加载。

问题是php脚本将我重定向到“您还没有登录”页面。请注意,即使重新启动浏览器后,该URL也可用。

如何在不编写登录网站的代码的情况下获取内容的任何想法?

2 个答案:

答案 0 :(得分:3)

如果网站可以访问任意外部网站上的数据,那将是一个巨大的安全问题。想象一下:file_get_contents('https://yourbank.com/all-your-details')

您可以这样做的唯一方法是在外部网站上询问用户他/她的登录凭据并手动登录。但是,这将是不可靠的,因为身份验证过程可能会发生变化(并且要求某人输入他/她的密码非常粗鲁。)

这通常是用于使用Web服务的API,但是如果您感兴趣的网站没有可用的,那么您就会陷入困境。


如果您已经知道网站的登录凭据,那么您可以使用Blauesocke概述的方法将它们硬编码到脚本中,但如果细节对于当前用户来说是唯一的,那么这将不起作用。

答案 1 :(得分:3)

PHP运行服务器,因此它有自己的会话处理,没有链接到您的浏览器会话。您可以使用cURLoptions之类的CURLOPT_COOKIEJAR来执行此操作。使用cURL,您可以通过PHP登录并保留您要求的网站的PHP会话。您将在我链接的cURL文档中找到大量示例。