>백엔드 개발 >PHP 튜토리얼 > session,cookie共用,session丢失之有关问题,1周了

session,cookie共用,session丢失之有关问题,1周了

WBOY
WBOY원래의
2016-06-13 13:35:22770검색

session,cookie共用,session丢失之问题,1周了。
cookie只保存了一个自动登录。
session,是存着所在导般栏名子,(中英名系统)。共有近30个。如:

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->$session['userInfo']='用户中心';

所有session都在head.php中,被所有文件来引用。
部分代码如下:
PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php if(($_POST['admin_user']!="")&&($_POST['admin_pass']!=""))
{
    require_once("image/conn.php");
    
    $number=(get_magic_quotes_gpc())?trim($_POST['admin_user']):addslashes(trim($_POST['admin_user']));
    $pass=(get_magic_quotes_gpc())?trim($_POST['admin_pass']):addslashes(trim($_POST['admin_pass']));
    
    $q=$m->query("select authority from setting_user where number='".$number."' and password='".$pass."'");
    $r=$q->fetch_array(MYSQLI_USE_RESULT);
    (int)$authority=$r['authority'];//权限分配
    
    if($q->num_rows>0){
        //分配显示名
        $qShow=$m->query("select * from setting_display where user='".$number."' order by id desc limit 1");
        $rShow=$qShow->fetch_array(MYSQLI_USE_RESULT);{
            $_SESSION['receiving']=$rShow['receiving']?$rShow['receiving']:NULL;
            $_SESSION['po']=$rShow['po']?$rShow['po']:NULL;
                        // 很多session 在这里


            
            if($_POST['remeberMe']){
            setcookie("u",$number,time()+3600);
            setcookie("p",$pass,time()+3600);
            }
        }
        $_SESSION['auth']=$number;

        switch($authority){

            case 1:echo "<script>window.location.href='main.php?o=show';</script>";$_SESSION['admin']=1;break;
            default:echo "<script>window.location.href='main.php?o=show';</script>";$_SESSION['admin']=NULL;break;
            }
    }
    else{
            echo "<script language="javascript">alert('用户名或密码输入错误!');</script>"; 
        }
}
?>



每个页面,都加了,
PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><?php session_set_cookie_params('3600');session_start(); ?>


这些session是从数据里取的,但是为什么,使用不到80秒,就会出现乱的名子,由汉字(正确)变化,数字与字母的。


------解决方案--------------------
出现乱的名子?

页面的编码是否一致?
------解决方案--------------------
中间是不是改动了session或者cookies的值。是不是session_set_cookie_params的原因
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.