ホームページ  >  記事  >  バックエンド開発  >  PHPセッションが保存できない場合の対処方法

PHPセッションが保存できない場合の対処方法

coldplay.xixi
coldplay.xixiオリジナル
2020-08-20 09:34:563865ブラウズ

php セッションを保存できない問題の解決策: 1. URL を通じて値を手動で渡し、非表示のフォームを通じてセッション ID を渡します; 2. [session_id] をファイル、データベースなどに保存します。 .、クロスページプロセス中に手動で呼び出します。

PHPセッションが保存できない場合の対処方法

php セッションが保存できない問題の解決策:

phpinfo を使用してセッション情報を表示し、セッション保存パスを取得し、それに書き込み権限を設定します。

解決できない場合は、次を参照してください。

さて、Cookie を脇に置いてセッションを使用しましょう主な方法は 3 つあります:

1、php.ini で session.use_trans_sid = 1 を設定するか、コンパイル時に –enable-trans-sid オプションをオンにします。 ,

PHP がページ セッション ID を自動的に通過できるようにします。

2. URL を通じて値を手動で渡し、非表示のフォームを通じてセッション ID を渡します。

3. session_id をファイル、データベースなどに保存し、クロスページ プロセス中に手動で呼び出します。

例、セッションのログインと終了を使用した php の簡単な例

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

関連学習の推奨事項: php プログラミング (ビデオ)

以上がPHPセッションが保存できない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。