Rumah > pembangunan bahagian belakang > tutorial php > session_id赋值出现莫名其妙的难题,急

session_id赋值出现莫名其妙的难题,急

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-23 14:00:59
asal
1030 orang telah melayarinya

页面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

<?php/* * 生成验证码图片 * author yuanjiang @2.16.2014*/define("IN_WD",true);require('includes/init.php');$sessionid = session_id();$url = CLIENT_HOST.'createCaptcha.php';$keyArr = array('sessionid'=>$sessionid);$captcha = $Common->file_post($url,$keyArr);echo base64_encode($captcha);   //图片的base64编码,供客户端和web调用?>
Salin selepas log masuk

以下是页面B,也就是上面的createCaptcha.php
<?php/* * 生成验证码图片 * author yuanjiang @2.16.2014*/define("IN_WD",true);$sessionid =  isset($_POST['sessionid']) ? $_POST['sessionid'] : '' ;     //根据post的sessionid切换session状态if(!empty($sessionid)){     session_id($sessionid);      //执行这一步的时候程序会卡死,当$sessionid不等于页面A.php的session_id时正确}session_start();require('includes/cls_captcha.php');$Captcha = new Captcha;$Captcha->generate_image();     //生成图片?>
Salin selepas log masuk


回复讨论(解决方案)

我前后测试过几十次了。
当createCaptcha.php的session_id($sessionid)函数,那个参数和页面A.php的session_id()不一致时,程序是完全没问题的。
但我要的效果就是createCaptcha.php利用session_id($sessionid)实现curl和post时session共享,实在想不明白哪里有问题,请大神救命啊。。。。
万谢!!!!!

页面A
$sessionid = session_id();
session_write_close(); //关闭 session
//访问B
session_id($sessionid)
session_start(); //重新打开 session

程序会卡死的原因是,页面A打开的 session 临时文件是独占的,不能在关闭前被再次打开

补充一下,当你不是使用默认的文件方式保存 session 时,就没有此困惑

感谢大神,救了命了,这么多年居然从来没注意过这个问题。
页面A
$sessionid = session_id();
session_write_close(); //关闭 session
//访问B
session_id($sessionid)
session_start(); //重新打开 session

程序会卡死的原因是,页面A打开的 session 临时文件是独占的,不能在关闭前被再次打开

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan