我现在有几个隶属于不同域名的网站,我想给这些网站一个通用的登陆页面,现在在远程登陆上遇到些问题.我用的CURL,登陆实际上已经成功,代码是
$login_url = 'http://somesites.com/login.php'; 
$post_data = 'username='.$username.'&password='.$password;

$ch = curl_init();
$agent = $_SERVER["HTTP_USER_AGENT"];
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL, $login_url );
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookie.txt');
$postResult = curl_exec($ch);
在这里$postResult返回的确是是那个login.php页面登陆成功的信息,现在问题就在于,我怎么才能自动在登陆成功后跳转到登录后页面呢?比如说 http://somesites.com/admin.php ? 我现在直接header过去,还是未登录的状态.请指教!

解决方案 »

  1.   

    不能用header,因为header不包含curl的登录信息你还是要用curl,讲CURLOPT_URL设置为跳转后的页面,再执行一次curl_exec
      

  2.   


    curl_setopt($ch, CURLOPT_URL, "http://somesites.com/admin.php");
    $go = curl_exec($ch);
    是这样吗?然后呢?echo $go; 吗?可是这样的话首先我浏览器的地址栏里还是我原先执行curl的页面而不是我想要跳转的http://somesites.com/admin.php, 其次echo出来的页面还是显示未登录成功请再说详细点好吗?谢谢了
      

  3.   

    curl本来就是用来取页面内容的用于后台处理的,不是让你在浏览器中跳转的。
      

  4.   

    CURL,其实是服务器作为客户端身份,去登陆目标地址看不明白,你这么操作有什么特别用意吗?
    我觉得不如做个静态页,用js控制表单信息,以及表单提交地址