有3个php页面,如下:
----------------------
a.php
<?php
//....
header("location:b.php?".SID);?>
--------------------------
b.php
<?php
//....处理session中的数据
header("location:c.php?".SID);?>
--------------------------
c.php其中a.php c.php会有输出返回到浏览器,而b.php只起到处理数据的作用,然后直接跳到c.php,问题是:b.php为何接受不到
a.php中header函数传递的SID值呢?
我在b.php中用$_GET["PHPSESSID"]来获取的,配置文件中的session name也是"PHPSESSID".谢谢。
----------------------
a.php
<?php
//....
header("location:b.php?".SID);?>
--------------------------
b.php
<?php
//....处理session中的数据
header("location:c.php?".SID);?>
--------------------------
c.php其中a.php c.php会有输出返回到浏览器,而b.php只起到处理数据的作用,然后直接跳到c.php,问题是:b.php为何接受不到
a.php中header函数传递的SID值呢?
我在b.php中用$_GET["PHPSESSID"]来获取的,配置文件中的session name也是"PHPSESSID".谢谢。
我用的是php5.2.13,SID本身的格式就是PHPSESSID=sess_*************,不需要PHPSESSID了
正解.你得把sid的值赋给一个变量.按你的写法通过$_GET["PHPSESSID"]是获取不到的。
你说配置文件中的session name也是"PHPSESSID".可以通过$_SESSION['PHPSESSID']进行获取。
session_start()放到第一行了
Location:url
指令,浏览器收到该指令后就立即发起跳转动作
在等待新页面到来时,浏览器将继续显示该页面的内容诚如你所说:b.php只起到处理数据的作用。也就是并没有输出,所以你也就感觉到 b.php 没有执行了
————————
在a.php页面中,我把session id放在了form的antion连接中,结果我在b.php中get不到。后来看了下,form中的其他字段的值竟然可以get的到,所以把session id放到form中的hidden字段中去,这样就在b.php中get到了。——————————————
问题已经解决,但是有些不明白,form的method是get,表单中的字段在提交的时候也会同样编码在action的链接中,为何我直接编码到链接后面的值却get不到呢?
header是这个工作流程,php中有没有像jsp那种直接在服务端forward的,不需要再让客户端的browser来请求跳转的功能?