PHP を使用するほとんどの人は、セッションに適用されると Cookie を使用します。
クッキーは良いものですが、隠れた危険ももたらす可能性があります。
隠れた危険 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` テキストが NULL ではありません、
主キー (`sesskey`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
データベースは次のように示します: db_session
列名: sesskey、expiry、value ここで: sesskey は主キーです。
Value はセッション内の値を保存します。
3. session_mysql.php ファイルを作成します。このファイルは、セッションを保存するメソッドを構築するために使用されます。パラメータを変更するだけで、直接使用できます。
session_mysql.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");//セッションの最大有効期間を取得します。
関数 sess_open($save_path,$session_name){
グローバル $gb_DBHOSTname,$gb_DBname,$gb_DBuser,$gb_DBpass,$SESS_DBH;
If(!$SESS_DBH=mysql_pconnect($gb_DBHOSTname,$gb_DBuser,$gb_DBpass)){
echo "