隠れた危険 1: クライアント マシンの Cookie がウイルスによって無効になった場合、セッションは失われているのと同じです。
隠れた危険 2: PHP では、セッションはデフォルトでファイルの形式で一時フォルダーに保存されます。
頻繁にアクセスされる大規模なシステムの場合は、これで問題ありません。システムにとって、これは良い考えではありません。この Web サイトに 1 日に 1,000 人がアクセスするとします。 1 か月後、セッションの一時フォルダーには 30,000 の一時ファイルが含まれます。コンピューターが 30000 から session_sid を見つけるのにどれくらいの時間がかかるかを想像してみてください。
効率を上げるためです。
トランザクションはデータベースを使用してセッションを保存します。具体的な方法は以下の通りです。
1. php.ini ファイルを変更します。
PHP でセッションを保存するデフォルトの方法はファイルであるため、これを変更する必要があります。つまり、「session.save_handler = files」を見つけて、「files」を「User」に変更します。
セッションモードをユーザー定義に変更します。
2. データベースを作成します:
CREATE TABLE `db_session` (
`sesskey` char(32) NOT NULL、
`expiry` int(11) unsigned NOT NULL、
`value` text NOT NULL,
PRIMARY KEY (`sesskey`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
[/code]
データベースは次を示します: db_session
列名: sesskey、expiry、 value ここで、 sesskey は主キーです。
Value はセッションに値を保存します。
3. session_mysql.php ファイルを作成します。このファイルは、セッションを保存するメソッドを構築するために使用されます。パラメータを変更するだけで、直接使用できます。
session_mysql.php
PHP コード:
コードをコピー コードは次のとおりです:
php
$gb_DBname="db_myBBS";//データベース名
$gb_DBuser="root";//データベースユーザー名
$gb_DBpass="23928484";//データベースパスワード
$gb_DBHOSTname= "localhost" ;//ホストの名前または IP アドレス
$SESS_DBH="";
$SESS_LIFE=get_cfg_var("session.gc_maxlifetime");// セッションの最大有効期間を取得します。
function sess_open($save_path,$session_name){
global $gb_DBHOSTname,$gb_DBname,$gb_DBuser,$gb_DBpass,$SESS_DBH
if(!$SESS_DBH=mysql_pconnect($gb_DBHOSTname,$gb_DBuser,$ gb_DBpass)){
echo "
include ("session_mysql.php"); session_start(); $_SESSION['abc']= "A: また来ます!"; ]= " B: 私もです "; $_SESSION['name']= "ルイ "; echo "クリックしてください 🎜>? >
get_session_test.php
コードをコピーします
コードは次のとおりです:
echo "
"; >echo $_SESSION['meto']; echo "
"; $_SESSION['wq']="12e"; >echo "
もう一度クリック";
get_session_test2.php
コードをコピー コードは次のとおりです。
include ( "session_mysql.php");
session_start();
echo "
";
echo $_SESSION['abc']; 🎜>echo "
";
echo $_SESSION['name'];
echo $_SESSION['wq']; session_destroy() ;//すべてのセッションを破棄するために使用される関数。
?>