你描述的内容是很久以前的了,在php4.0.6时代session确实是那种方式传递的。但是现在已经改变了,具体使用了什么机制我还不是很清楚。测试如下
<?php
setcookie('name', 'my');
print_r($_COOKIE);
?>
<script>
document.write(document.cookie);
</script>在开启cookie的浏览器中将显示cookie的值
当关闭cookie后就不显示了,这表示cookie确实被关闭了
改写代码为
<?php
session_start();
$_SESSION['id'] = 123;
setcookie('name', 'my');
print_r($_COOKIE);
print_r($_SESSION);
?>
<script>
document.write(document.cookie);
</script>再次执行发现:cookie确实依然没有,但session却是存在的,并且url中也并没有附加任何参数

解决方案 »

  1.   

    首先感谢xuzuning(唠叨)的回复。
        但是你写的这个测试程序并没有说明SID依旧可以用,因为通过print_r($_SESSION);显示出来的是你自己设置的一个叫id的session变量,而并不是sessionid。
        这里的id可以显示是因为它是存在服务器端的,而并不是客户的浏览器端。事实上,SID依旧是存在cookie中,因此依旧是不能使用的,可以在xuzuning(唠叨)的程序中加一句echo $PHPSESSID;,结果是:在cookie禁用的情况下,没有任何显示。
        到目前为止,据我所知,在cookie完全禁用的情况下,sessionid只能通过url来传递,或者用专门的数据库session表来实现功能,网上有为这样的实现方式而专门写的类。
      

  2.   

    session id 只通过两种途径传递 ,cookie和url,两者择1
    相关配置项 php.in
    session.use_cookies = 1
    session.use_only_cookies = 1
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"具体怎么配查手册,谢谢
      

  3.   

    ashchen(輝輝)说的我知道,怎么配置我很清楚,这个不是我想要问的,请看清楚我的问题。