【问题标题】:php: get content of a protected page?php:获取受保护页面的内容?
【发布时间】:2011-07-21 07:15:53
【问题描述】:

我正在尝试获取受保护页面的 html 代码。我的目标是用css重新设计这个页面,所以我需要先获取html代码!!!

我有一个有效的用户名和密码。

我曾尝试使用 cURL,但我总是收到以下消息:“存根收到错误数据”

页面的url是:http://student.guc.edu.eg

【问题讨论】:

标签: php curl get


【解决方案1】:

你有任何代码吗?您需要使用这样的代码,特别是利用CURLOPT_HTTPAUTHCURLOPT_USERPWD

$username = 'studentid';
$password = 'studentpassword';

$ch = curl_init("http://student.guc.edu.eg/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
$html = curl_exec($ch);
curl_close($ch);

CURLOPT_HTTPAUTH

要使用的 HTTP 身份验证方法。选项包括:CURLAUTH_BASIC、CURLAUTH_DIGEST、CURLAUTH_GSSNEGOTIATE、CURLAUTH_NTLM、CURLAUTH_ANY 和 CURLAUTH_ANYSAFE。

按位 | (or) 运算符可用于组合多个方法。如果这样做了,cURL 将轮询服务器以查看它支持的方法并选择最好的方法。

CURLAUTH_ANY 是 CURLAUTH_BASIC | 的别名。 CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM。

CURLAUTH_ANYSAFE 是 CURLAUTH_DIGEST | 的别名。 CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM。

CURLOPT_USERPWD

用于连接的用户名和密码,格式为“[username]:[password]”。


查看站点http://student.guc.edu.eg/返回的headers如下:

> curl -I http://student.guc.edu.eg/
HTTP/1.1 401 Access Denied
Server: Microsoft-IIS/5.0
Date: Thu, 21 Jul 2011 08:18:34 GMT
WWW-Authenticate: NTLM
WWW-Authenticate: Basic realm="student.guc.edu.eg"
Connection: close
Content-Length: 4431
Content-Type: text/html

这意味着您应该尝试CURLAUTH_NTLM,而不是使用CURLAUTH_BASIC,看看是否有帮助。

【讨论】:

  • @ahmed 您正在使用的网络服务器。我见过“存根收到错误数据”的唯一地方是在 Windows 上。
  • @ahmed,好的,所以使用我上面的代码,会发生什么?是否只是包含“存根收到错误数据”的 $html 变量?
  • 更新,当我将(CURLOPT_HTTPAUTH)更改为(CURLAUTH_ANY)时,我得到了(您无权查看此页面)页面!!!
  • @ahmed 这显然是由服务器返回的,您的用户名和密码正确吗?我不认为这是你的问题..
  • 我很确定它们是正确的:/我的密码包含破折号( - ),如果它不同的话?!
【解决方案2】:

不要使用 cURL,使用其他人编写的类,这样可以省去记住发送正确标头、生成有用的错误消息等的所有麻烦,例如 Zend_Http_Client:

http://framework.zend.com/manual/en/zend.http.html

【讨论】:

    猜你喜欢
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 2021-06-10
    相关资源
    最近更新 更多