Heim > Backend-Entwicklung > PHP-Tutorial > session,cookie共用,session丢失之有关问题,1周了

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

WBOY
Freigeben: 2016-06-13 13:35:22
Original
774 Leute haben es durchsucht

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

PHP code
<!--

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

-->$session['userInfo']='用户中心';
Nach dem Login kopieren

所有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>"; 
        }
}
?>
Nach dem Login kopieren



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

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

--><?php session_set_cookie_params('3600');session_start(); ?>
Nach dem Login kopieren


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


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

页面的编码是否一致?
------解决方案--------------------
中间是不是改动了session或者cookies的值。是不是session_set_cookie_params的原因
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage