1、セッション一時ファイル
サーバーでは、すべてのユーザーセッションが一時ディレクトリに保存されると、サーバーのセキュリティと効率が低下します。サーバーに保存されているサイトを開くと非常に時間がかかります。
PHP 関数 session_save_path() 関数を使用してセッション一時ファイルを保存すると、一時ファイルの保存によって引き起こされるサーバー効率の低下やサイトを開くのが遅くなるという問題を軽減できます。
サンプルコードは次のとおりです:
<?php $path ="./tmp/"; //设置session存储的路径 session_save_path($path); session_start(); $_SESSION['userName']=true; ?>
注意
session_save_path() は session_start() の前に実行する必要があります。
2、セッションキャッシュ
セッションキャッシュとは、WebページのコンテンツをIEクライアントのインターネット一時ファイルフォルダーに一時的に保存するもので、キャッシュ時間を設定することができます。
セッション キャッシュは session_cache_limiter() 関数を使用します。その構文は次のとおりです:
string session_cache_limiter([string cache_limiter]);
パラメータ cache_limiter はパブリックまたはプライベートです。 Colleagues セッションはサーバー側ではなく、クライアント側にあります。サーバーには表示されません。
キャッシュ時間を設定するには、関数 session_cache_expire() を使用します。 構文は次のとおりです:
int session_cache_expire([int new_cahche_expire]); パラメータ new_cahche_expire は、分単位のセッション キャッシュ時間番号です。
注:
これら 2 つのセッション関数は session_start() 関数の前に実行する必要があります
<?php session_cache_limiter("private"); $cache_limit =session_cache_limiter(); //开启客户端缓存 echo "缓存限制为:".$cache_limit."\n"; session_cache_expire(30); $cache_expire = session_cache_expire(); //设定客户端缓存时间 echo "客户端缓存时间为:".$cache_expire."分钟\n"; session_start(); ?>
3、セッション データベース ストレージ php のセッション データベース ストレージは主に session_set_save_handler() 関数を通じて実装されます。 具体的な構文は次のとおりです:
bool session_set_save_handler(string open, string close, string read, string write, string destroy, string gc);
オブジェクト指向プログラミングを学習すると、次の 6 つのパラメータ (関数) に分かれます。 、誰もがより明確に理解できるようになります。
(1) session_open() 関数をカプセル化します。コードは次のとおりです。
function _session_open($save_path,$session_name){global $handle;$handle =mysql_connect('localhost','root','root')or die('数据库连接失败!');mysql_select_db('db_database11',$handle)or die('数据库不存在');return(true);}
function _session_close(){global $handle;mysql_close($handle);return(true);}
function _session_read($key){golbal $handle; //全局变量$handle 连接数据库$time =time(); //设定当前时间$sql ="select session_data from tb_session where session_key = '$key' and session_time>'$time'";$result =mysql_query($ssql,$handle);$row =mysql_fetch_array($result);if($row){return($row['session_data']);}else{return(false);}}
function _session_write($key,$data){global $handle;$time = 60*60;$lapse_time =time()+$time; //得到UNIX时间戳$sql = "select session_data from tb_session where session_key ='$key' and session_time>$lapse_time";$result =mysql_query($sql,$handle);if(mysql_num_rows($result)==0){ //没有结果$sql ="insert into tb_session values('$key','$data',$lapse_time)";$result =mysql_query($sql,$handle);}else{$sql ="update tb_session set session_key='$key',session_data ='$data',session_time =$lapse_time where session_key ='$key'";$result =mysql_query($sql,$handle);}return($result);}
function _session_destroy(){global $handle;$sql ="delete from tb_session where session_key ='$key'";$result =mysql_query($sql,$handle);}
functin _session_gc($expiry_time){global $handle;$sql ="delete from tb_session where session_expiry_time<$expiry_time";$result =mysql_query($sql,$handle);return($result);}