curl 设置session

石头子 2012-06-13 12:16:54
想通过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.php

session_start();
$user = $_REQUEST['user'];
//此处能取到$user值
if(!empty($user)){
$_SESSION['cuser'] = $user;
}
//
print_r($_SESSION['cuser']);
...全文
682 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
石头子 2012-06-13
  • 打赏
  • 举报
回复
对是的,请问应该怎么传递设置sessionid?
libo_sina 2012-06-13
  • 打赏
  • 举报
回复
其实单点登录可以这样实现:在一个站点登陆了,再将获取的到的用户名和密码通过js主动去访问别个模块的php控制器来实现的!前提是各个模块都有独立的登录模块
craboy1 2012-06-13
  • 打赏
  • 举报
回复
你在解决单点登录吗.你的代码没细看,
你需要考虑:session是依赖cookie的,cookie中的sessionid决定了用户对应服务器上的那个session

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧