File_get_contents和浏览器会话


file_get_contents and browser session

我有以下代码:

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

浏览器已经有一个我需要访问的站点会话,所以如果我在新选项卡中打开url,页面将被正确加载。

问题是php脚本,重定向到"你没有登录"页面。注意,即使重新启动浏览器,url仍然可用。

有什么想法如何获得内容,而不编写登录到网站的代码?

PHP运行在服务器端,所以它有自己的会话处理,没有链接到您的浏览器会话。您可以使用cURL和CURLOPT_COOKIEJAR之类的选项来完成此操作。使用cURL,您可以通过PHP登录并保持您请求的网站的PHP会话。您可以在我链接的cURL文档中找到一堆示例。

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

你能做到这一点的唯一方法是向用户询问他/她在外部网站上的登录凭据,然后手动登录。但是,这将是不可靠的,因为身份验证过程可能会更改(并且询问某人的密码是非常不礼貌的)。

这通常是web服务api的用途,但如果您感兴趣的站点没有可用的web服务api,那么您就会陷入困境。


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