用session_start()报错,我修改了php.ini文件后不报错了...后来发现跳转后的页面用与不用都一样,于是就注释掉了

解决方案 »

  1.   

    你在你保存3个变量session值之后,再输出session是否有值?
    print_r($_SESSION);
      

  2.   

    居然只有一个有值,但我存入session的值的确是有的
      

  3.   

    存session的代码<?php 
    header("Content-Type:text/html;charset=utf-8");
     class checkit{
       function checklogin($u,$p){
         session_start();
        $sx=simplexml_load_file("../system/user.xml");
    foreach($sx->user as $user){
    $userid=$user->userid;//从xml中获取的userid
    $userpass=$user->userpassword;//密码
    $position=$user->position;//职位
    $access=$user->access_right;//权限jibie

    if($u==$userid&&$p==$userpass){
    // echo $access.'--'.$position.'<br>';//1--总经理
    $_SESSION['position']=$position;
    $_SESSION['access_right']=$access;
    $_SESSION['user']=$u;
    print_r($_SESSION);
    //echo "<script language='javascript'>location.href='home.php'</script>";
    }
    }
    echo "<script language='javascript' >location.href='login.php';alert('账号或者密码错误')</script>";
    取session的代码<?php
       session_start();
      //dump($_SESSION);
     // print_r($_SESSION);   echo $_SESSION['user'];
       echo $_SESSION['position'];
       echo $_SESSION['access_right'];
       
       ?>
    但是只能取出user的值。 请指教
      

  4.   

    存session的代码
    PHP code?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php 
    header("Content-Type:text/html;charset=utf-8");
     class checkit{
       function checklogin($u,$p){
         session_start();
               $sx=simplexml_load_file("../system/user.xml");
            foreach($sx->user as $user){
                $userid=$user->userid;//从xml中获取的userid
                $userpass=$user->userpassword;//密码
                $position=$user->position;//职位
                $access=$user->access_right;//权限jibie
                 
                if($u==$userid&&$p==$userpass){
            //    echo $access.'--'.$position.'<br>';//1--总经理
                $_SESSION['position']=$position;
                $_SESSION['access_right']=$access;
                $_SESSION['user']=$u;
                print_r($_SESSION);
                //echo "<script language='javascript'>location.href='home.php'</script>";
                }
            }    
            echo "<script language='javascript' >location.href='login.php';alert('账号或者密码错误')</script>";    
    取session的代码
    PHP code
    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
       session_start();
      //dump($_SESSION);
     // print_r($_SESSION);
     
       echo $_SESSION['user'];
       echo $_SESSION['position'];
       echo $_SESSION['access_right'];
        
       ?>但是只能取出user的值。 请指教
      

  5.   

    session_start();
    echo $_SESSION['这里是session的名字'];
    楼主应该懂点基础吧!!
      

  6.   

    $_SESSION['position']=$position;
    $_SESSION['access_right']=$access;
    $_SESSION['user']=$u;
    print_r($_SESSION);关键你的$position,$access,$u保存session的时候,有没值?取值是根据,是否保存成功值。
      

  7.   

    大概猜到原因了,我存进去的是xml对象。如图:但我第一次输出明明是string类型的,现在改怎么处理呢?
      

  8.   

    string 是一个SimpleXMLElement Object,并不是一个标准的普通的数组项。
    $newposition = (array)$position;
      

  9.   

    是这样的要把xml对象-->arry数组-->再取值。
    现在有个问题:我在跳转后页面取出session里的值出现中文乱码,修改页面编码格式后session取出的中文正常了,但页面原来的内容出现了中文乱码。何解?
      

  10.   

    存入的是对象,读取的也是对象。并不影响后续的处理$_SESSION['position'] = strval($position);
    就是字符串了
      

  11.   

    现在有个问题:我在跳转后页面取出session里的值出现中文乱码,修改页面编码格式后session取出的中文正常了,但页面原来的内容出现了中文乱码。怎么解决?
      

  12.   

    你要在乱码的源头做处理
    你只把页面的编码改了,当然是不行的!
    你的页面是 gbk 的,而 SimpleXMLElement 返回的结果是 utf-8 的,出现乱码就很正常了
    $_SESSION['position'] = strval($position); //这样是 utf-8 的
    $_SESSION['position'] = iconv('utf-8', 'gbk', strval($position)); //这样就是 gbk 的了编写、调试程序的原则是:尽可能的把问题缩小到一个小范围中(这样便于问题的解决)而不是让问题扩散出去
      

  13.   

    我是填的session的名字啊
    那你有没有给SESSION里面储存值。没有储存值也会获取不到了!