session_id赋值出现莫名其妙的难题,急!!!!
页面A和页面B都在同一个web根目录,之所以还要传递session_id,是因为页面A需要使用curl的post到页面B并取得返回数据,而curl的post,会被服务器认为是另外一个终端。
思路是这样:页面A.php传递当前的session_id到页面B.php(用post方式),页面B.php用session_id()操作,以便页面A.php和B.php共享session。
以下是代码:
页面A.php
<br /><?php<br />/*<br /> * 生成验证码图片<br /> * author yuanjiang @2.16.2014<br />*/<br />define("IN_WD",true);<br />require('includes/init.php');<br /><br />$sessionid = session_id();<br /><br />$url = CLIENT_HOST.'createCaptcha.php';<br />$keyArr = array('sessionid'=>$sessionid);<br /><br />$captcha = $Common->file_post($url,$keyArr);<br />echo base64_encode($captcha); //图片的base64编码,供客户端和web调用<br /><br />?><br />
<br /><?php<br />/*<br /> * 生成验证码图片<br /> * author yuanjiang @2.16.2014<br />*/<br />define("IN_WD",true);<br />$sessionid = isset($_POST['sessionid']) ? $_POST['sessionid'] : '' ; //根据post的sessionid切换session状态<br />if(!empty($sessionid))<br />{ <br /> session_id($sessionid); //执行这一步的时候程序会卡死,当$sessionid不等于页面A.php的session_id时正确<br />}<br />session_start();<br />require('includes/cls_captcha.php');<br />$Captcha = new Captcha;<br />$Captcha->generate_image(); //生成图片<br />?><br />