我写的代码很简单,在windows服务器上都正常,但放到一台linux服务器上session变量缺不能传递,
本来以为是php配置问题,但这台服务器上运行的其他php程序却运行正常,同样也用到了session的,真是郁闷死了,请大侠帮忙!
测试代码如下:
_test1.php
<?php
header("Content-Type: text/html; charset=UTF-8"); // 模板编码session_name( 'mytestsess' );
session_start();// 开始会话
$_SESSION['param1'] = 'sesssss!';echo '<a href="_test2.php">测试session</a>';?>_test.php
<?php
header("Content-Type: text/html; charset=UTF-8"); // 模板编码session_name( 'mytestsess' );
session_start();// 开始会话
echo 'get session value:'.$_SESSION['param1'];?>

解决方案 »

  1.   

    怀疑你session存储路径没有相应权限。
      

  2.   


    有这个可能,但奇怪的是别的php程序能运行正常,难度是session的用法不同吗
      

  3.   

    echo substr(sprintf('%o', fileperms(session_save_path())), -4);//看看权限
      

  4.   


    <?php 
    session_start();$_SESSION['test'] = '123';echo $_SESSION['test'];
      

  5.   

    session存放目录是有读写权限的,但还是不能传递变量,很郁闷啊。
      

  6.   

    代码没问题啊。。可能是linux权限问题。你可以参照其他程序的写法。
      

  7.   

    session还有别的写法么,怎么其他程序就运行正常呢,也不知道是怎么写的
      

  8.   

    你看下其他程序不就知道了。 你的php是那个版本?
      

  9.   

    echo '<a href="_test2.php">测试session</a>';跳到了_test2.php????
      

  10.   

    php版本是5.2.16,看不到别人的代码啊,加密的,要不也不这么麻烦了
      

  11.   

    发现session ID是正确的,却读不到session变量,郁闷死了
      

  12.   

    问题找到了,运维把session目录设置为不可写了,别的程序把session放到自定义目录里了,所以不受影响