2011-06-06 70 views
0

我看了一些例子,他们使用curl在PHP等,但我只是想要一个简单的命令,将我的凭据传递到一个网站,所以它可以登录,并给我访问下载文件。目前的问题是,当我尝试使用get_contents我卡在登录页面,因为它需要登录之前,它可以允许下载,所以没有办法发送我的登录信息之前在PHP get_contents?由于我如何使用get_contents提供我的凭据? php

例如,我们可以假设该网站位于www.confluence.com

回答

1

你的运气了。 file_get_contents()只能获取内容,因此名称。您可以尝试通过get语法进行身份验证,例如http://username:[email protected]

如果您必须通过HTTP POST发布凭证,则必须使用curl。

+0

我尝试的http://用户名:[email protected]但它没有工作,我在位于在登录页面,有什么想法? – Bulvak 2011-06-06 17:21:16

+0

是否存在一些不同的限制?我得到一个403错误,只是试图访问登录页面.. – konsolenfreddy 2011-06-06 17:27:11

+0

你需要在Apache服务器上才能访问它,只有我可以和附近的人在团队中....这真是太痛苦了没有办法传递凭据? – Bulvak 2011-06-07 13:57:16

1

问题是,当您登录服务器时,向您的浏览器发送一个您的浏览器自动存储的Cookie。 与file_get_content()你实际上可以传递cookie(file_get_content()的第三个context参数可以处理这个)。

看看stream context create。 顺便说一下,您需要首先将登录信息发送到登录页面(使用curl),当您收回cookie时,将它们作为file_get_content()的选项传递给用户,并且完成该技巧。

如果服务器使用的是不同的cookie登录系统,让我们知道,所以我们可以帮助您

+0

我不知道系统使用cookie存储信息我不是很有经验,但我不想使用curl,我记得很久以前通过一些php代码有变量存储用户名和密码,并以某种方式使用这些凭据在要登录的代码的顶部。这是网站,如果你想看看它是否存储cookies:http://confluence.rogersdigitalmedia.com – Bulvak 2011-06-06 16:16:19

+0

你发布的链接给我一个403-权限被拒绝的代码 如果这是你想用file_get_context()下载的页面,你可以通过用户名和密码作为选项 – ArtoAle 2011-06-06 16:24:53