尝试使用curl登录时出现奇怪的重定向问题

时间:2011-03-18 16:57:39

标签: php

尝试使用此网站上的curl登录:http://www.indianvideogamer.com

这是我的完整脚本:

        $ref = "http://www.indianvideogamer.com/" ;
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,"http://www.indianvideogamer.com/forums/index.php?app=core&module=global&section=login&do=process") ;       // Target site
        curl_setopt ($ch, CURLOPT_COOKIEFILE, "C:/cookie2-techenclave.txt");             
        curl_setopt($ch, CURLOPT_COOKIEJAR, "C:/cookie2-techenclave.txt");
        curl_setopt($ch, CURLOPT_REFERER, $ref);  
        curl_setopt($ch, CURLOPT_TIMEOUT, CURL_TIMEOUT);    // Timeout
        curl_setopt($ch, CURLOPT_USERAGENT, WEBBOT_NAME); 
        curl_setopt ($ch, CURLOPT_POST, 1);
        curl_setopt ($ch, CURLOPT_POSTFIELDS, "referer=http://www.indianvideogamer.com/forums/index.php&username=cute.bandar&password=mypass");

      //  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);     // Follow redirects
        curl_setopt($ch, CURLOPT_MAXREDIRS, 4);             // Limit redirections to four
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);     // Return in string  


        $webpage['FILE'] = curl_exec($ch);

        curl_close($ch);
         echo $webpage['FILE'] ;

在localhost / script.php上运行此脚本的结果是,它不是回显页面而是重定向到http://www.localhost/script.php。为什么?

2 个答案:

答案 0 :(得分:1)

我承认这不是一个明显的问题。

但最后我才开始工作。我在URL参数中跳过了&符号的URL编码。所以我的路线是:

curl_setopt($ch, CURLOPT_URL,"http://www.indianvideogamer.com/forums/index.php?app=core&module=global&section=login&do=process") ;
顺便说一下,你确定这是整个剧本吗?我的PHP抱怨缺少CURL_TIMEOUTWEBBOT_NAME的定义,但这似乎不会影响登录。

答案 1 :(得分:0)

尝试使用

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

这将遵循重定向。