2011-09-08 87 views
0

使用PHP和cURL,我想检查我是否可以使用提供的用户凭证登录到网站。为此,我正在检索整个网站,然后使用正则表达式筛选可能表明登录无效的关键字。cURL只检索URL地址

如果输入了错误的用户名/密码,url本身包含字符串“errormessage”。是否有可能只使用curl来获取url地址,而没有内容加速呢?

这里是我的卷曲的PHP代码:

function curl_get_request($referer, $submit_url, $ch) 
{ 
    global $cookie_path; 

    // sends a request via curl to the string specifics listed 
    $agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)"; 
    curl_setopt($ch, CURLOPT_URL, $submit_url); 
    curl_setopt($ch, CURLOPT_USERAGENT, $agent); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_REFERER, $referer); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_path); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_path); 
    return $result = curl_exec ($ch); 
} 

而且,如果有人对如何处理问题这样一个更好的主意,请让我知道!

回答

0

你应该做的是每次重定向时检查URL。大多数重定向都将使用正确的HTTP标头完成。如果是这样的话,看到这样的回答:

PHP: cURL and keep track of all redirections

基本上,关闭自动重定向以下,并检查HTTP状态代码301302。如果你得到其中一个,你可以继续按需要重定向,或从那里退出。

如果相反,重定向发生在客户端,则必须使用DOM解析器解析页面。