【问题标题】:Get page content with session authentication通过会话身份验证获取页面内容
【发布时间】:2013-09-25 11:34:41
【问题描述】:

我在 Stack Overflow 上查看了类似的问题,但只找到了一些信息。所以我的问题是这样的:

我想获取一个页面的内容,比如说:needpage.php(使用file_get_contents() + stream_context_create() 或使用cURL())但是我需要的页面会将我重定向到登录页面(loginpage.php - <form action=*processlogin.php*> 与用户并通过)。

我需要先cURL()file_get_contents() processlogin.php 页面到POST 的用户名和密码字段,然后获取 sessionID,然后向 发送另一个请求>needpage.php 我需要发帖:

$opts = array(
    'http' => array(
        'method' => 'GET',
        'header' => 'Cookie: PHPSESSID=0123456789abcdef0123456789abcdef'
    )
);

您认为正确的流程是什么? cURLfile_get_contents 是否可以存储 cookie 然后将该 cookie 用于另一个页面?

【问题讨论】:

  • 我认为解决方案是用一些帖子数据卷曲登录页面(我需要登录页面中的 html 代码来准确告诉你)登录,然后卷曲目标页面。
  • 简单的<form action='processlogin.php'> <input user> <input pass> </form>
  • 但是它是如何以及在哪里抓取 cookie 的呢?我怎样才能访问那个 cookie ...
  • 要登录,使用正确的帖子数据(用户和密码)卷曲 processlogin.php。然后,在关闭 curl 会话之前,将新的 curl 发送到您要访问的页面。

标签: php cookies curl


【解决方案1】:

curl_setopt() 列出了所有有用的标志。也许CURLOPT_COOKIESESSION 对您有帮助?除非我读错了,否则文档似乎声称如此。

如果不起作用,还有CURLOPT_COOKIEJAR,可以在调用curl_close()之后将cookie数据保存到文件中。

然后就可以使用CURLOPT_COOKIEFILE加载了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 2016-11-10
    • 2011-06-29
    • 2013-06-27
    • 2016-03-31
    • 2017-06-16
    相关资源
    最近更新 更多