Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn die PHP-Sitzung nicht gespeichert werden kann?

Was tun, wenn die PHP-Sitzung nicht gespeichert werden kann?

coldplay.xixi
coldplay.xixiOriginal
2020-08-20 09:34:563845Durchsuche

Lösungen für PHP-Sitzungen, die nicht gespeichert werden können: 1. Übergeben Sie den Wert manuell über die URL und übergeben Sie die Sitzungs-ID in versteckter Form. 2. Speichern Sie [Sitzungs-ID] in einer Datei, Datenbank usw. und rufen Sie sie währenddessen manuell auf Der seitenübergreifende Prozess.

Was tun, wenn die PHP-Sitzung nicht gespeichert werden kann?

Lösung für eine PHP-Sitzung, die nicht gespeichert werden kann:

Verwenden Sie phpinfo, um die Sitzungsinformationen anzuzeigen, ermitteln Sie den Speicherpfad der Sitzung und legen Sie dann Schreibberechtigungen dafür fest

Wenn Sie das Problem nicht lösen können Problem, Sie können sich auf Folgendes beziehen:

Lassen Sie uns nun Cookies beiseite legen und Sitzungen verwenden. Es gibt drei Hauptmethoden:

1. Setzen Sie

in php.ini oder aktivieren Sie die Option session.use_trans_sid = 1 während der Kompilierung, –enable-trans-sid

und lassen Sie PHP automatisch seitenübergreifend

. session id

2. Übergeben Sie den Wert manuell über die URL und die Sitzungs-ID über das versteckte Formular.

3. In Dateien, Datenbanken etc. speichern

, und während des seitenübergreifenden Prozesses manuell aufrufen. session_id

Beispiel, ein einfaches Beispiel für PHP mit Sitzungsanmeldung und -beendigung

Anmeldung

<?php
//使用会话内存储的变量值之前必须先开启会话
session_start();
//使用一个会话变量检查登录状态
if(isset($_SESSION[&#39;username&#39;])){
    echo &#39;You are Logged as &#39;.$_SESSION[&#39;username&#39;].&#39;<br/>&#39;;
    //点击“Log Out”,则转到logOut页面进行注销
    echo &#39;<a href="logOut.php"> Log Out(&#39;.$_SESSION[&#39;username&#39;].&#39;)</a>&#39;;
}
/**在已登录页面中,可以利用用户的session如$_SESSION[&#39;username&#39;]、
 * $_SESSION[&#39;user_id&#39;]对数据库进行查询,可以做好多好多事情*/
?>

Beenden

<?php
//即使是注销时,也必须首先开始会话才能访问会话变量
session_start();
//使用一个会话变量检查登录状态
if(isset($_SESSION[&#39;user_id&#39;])){
    //要清除会话变量,将$_SESSION超级全局变量设置为一个空数组
    $_SESSION = array();
    //如果存在一个会话cookie,通过将到期时间设置为之前1个小时从而将其删除
    if(isset($_COOKIE[session_name()])){
        setcookie(session_name(),&#39;&#39;,time()-3600);
    }
    //使用内置session_destroy()函数调用撤销会话
    session_destroy();
}
//location首部使浏览器重定向到另一个页面
$home_url = &#39;logIn.php&#39;;
header(&#39;Location:&#39;.$home_url);
?>

Verwandte Lernempfehlungen:

php-Programmierung(Video)

Das obige ist der detaillierte Inhalt vonWas tun, wenn die PHP-Sitzung nicht gespeichert werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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