session保存的路径正确,文件包可读可写,生成的session文件也是可读写的,可是却读取不到session的值,session_id都已经取得正确了,这是什么原因?

解决方案 »

  1.   

    我仔细对比了一下生成的session文件,一个里面
    code|i:123;
    securimage_code_value|s:6:"gzpmdd";
    这两个的区别就在于一个有引号,一个没有,究竟是应该有引号,还是不需要引号,还是有没有引号都正确呢?
      

  2.   

    function GetCkVdValue()
    {
    @session_start();
    $codes = $_SESSION['securimage_code_value'];
    return $codes;
    }
    返回的值为空
      

  3.   

    @session_start(); //去掉前面的@符号,看看有没有错误输出
      

  4.   

    调用GetCkVdValue()之前是否有输出了?
      

  5.   

    session_start前面的@先去掉吧,看看神马情况
      

  6.   

    之前没有输出。要是有输出的话,应该就取不到sessen_id吧
      

  7.   

    去掉了,也输出不了错误的。
    我用的dedecms系统,这个错误是他自己的验证码问题。它的官方论坛只有去掉验证码的解决方法,没有为什么取不到值的解决方法,所以我在这里求解了。
      

  8.   


    function GetCkVdValue()
    {
    //session_start();
    @$codes = $_SESSION['securimage_code_value'];
    return $codes;
    }session_start();
    $_SESSION['securimage_code_value']=123;
    $test = GetCkVdValue();
    echo $test;
    session_start()写在函数里面不顶用。。
      

  9.   

    另外,此现象是在本地计算机上没有问题,本地是xp系统,在iis下面配置的php环境
    服务器上就会出现取不到验证码的问题。服务器2003xp统,也是在iis下配置php环境,php版本是5.35,mysql版本是5.58。
    只是服务器禁用了很多的函数,究竟是哪个函数的问题,请大家指点一下。disable_functions = exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink,symlink,link,leak,proc_open,popepassthru,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,popen,com以前有个函数不能用,就是在这里找到的问题,现在不知道这里有没有问题了
      

  10.   

    检查一下 session.auto_start 的值
      

  11.   

    此问题补充:
    只我本地电脑,一清理cookies以后,就再也登录不了。三四天了,那个站一直登录不了。其它同事的,可以正常登录,但是也是把cookies清理以后用不了了。
    我的本地电脑cookies没有禁用。