Home  >  Article  >  Backend Development  >  What to do if the php session cannot be saved

What to do if the php session cannot be saved

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

Solution to the problem that the php session cannot be saved: 1. Manually pass the value through the URL and pass the session id through the hidden form; 2. Save [session_id] in a file, database, etc., and call it manually during the cross-page process.

What to do if the php session cannot be saved

Solution to the problem that php session cannot be saved:

Use phpinfo to view the session information and find out the session saving path , and then set the write permission for it

If you can't solve it, you can refer to the following

Now let's put aside the cookie and use the session. There are three main ways:

1 , set session.use_trans_sid = 1 in php.ini or turn on the –enable-trans-sid option when compiling,

let PHP automatically pass across pages session id.

2. Manually pass the value through the URL and pass the session id through the hidden form.

3. Save session_id in a file, database, etc., and call it manually during the cross-page process.

Example, a simple example of php using session login and exit

Login

<?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;]对数据库进行查询,可以做好多好多事情*/
?>

Exit

<?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);
?>

Related learning recommendations: php programming (video)

The above is the detailed content of What to do if the php session cannot be saved. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn