想通过curl为另一个域名设置一个session,但试了好长时间总是不行?
www.abc.com/curl.php$postdata = "user=admin";
$post = array(
"post" =>$postdata
);
curl_http_open("http://www.123.com/setsession.php",$post);
function curl_http_open($url, $conf = array())
{
    if (!function_exists('curl_init') or !is_array($conf)){
        return false;
}    $post = '';
    $purl = parse_url($url);    $arr = array('post' => true, 'return' => true, 'cookie' => '', );
    $arr = array_merge($arr, $conf);
    $ch = curl_init();    if ($purl['scheme'] == 'https') {
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    }    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, $arr['return']);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $arr['cookie']);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $arr['cookie']);    if ($arr['post'] != false) {
        curl_setopt($ch, CURL_POST, true);
        if (is_array($arr['post'])) {
            $post = http_build_query($arr['post']);
        } else {
            $post = $arr['post'];
        }
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    }    $result = curl_exec($ch);
    curl_close($ch);

    return $result;
}www.123.com/setsession.phpsession_start();
$user = $_REQUEST['user'];
//此处能取到$user值
if(!empty($user)){
$_SESSION['cuser'] = $user;
}
//
print_r($_SESSION['cuser']);

解决方案 »

  1.   

    你在解决单点登录吗.你的代码没细看,
    你需要考虑:session是依赖cookie的,cookie中的sessionid决定了用户对应服务器上的那个session
      

  2.   

    对是的,请问应该怎么传递设置sessionid?
      

  3.   

    其实单点登录可以这样实现:在一个站点登陆了,再将获取的到的用户名和密码通过js主动去访问别个模块的php控制器来实现的!前提是各个模块都有独立的登录模块