PHP は mysql データベースを使用してセッション コードを保存します
隠れた危険 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 "
die()
}
if(!mysql_select_db($gb_DBname) ,$SESS_DBH)){
echo "
die()>}
return }
関数 sess_close(){
return true;
}
関数 sess_read($key){
グローバル $SESS_DBH,$SESS_LIFE; db_session where sesskey = '$key' および有効期限 > ".time();
$qid=mysql_query($qry,$SESS_DBH);
if(list($value)=mysql_fetch_row($qid)) {
return $value;
}
return
}
function sess_write($key,$val){
global $SESS_DBH,$SESS_LIFE; =time() $SESS_LIFE;
$value=$val;
$qry="db_session 値に挿入('$key',$expiry,'$value')"; ($qry,$SESS_DBH);
if(!$qid){
$qry="update db_session set expiry=$expiry, value='$value' where sesskey='$key' and expiry > ".time();
$qid=mysql_query($qry,$SESS_DBH);
}
return $qid;
}
function sess_destroy($key){
global $SESS_DBH;
$qry="sesskey = '$key' から db_session を削除します";
$qry,$SESS_DBH); >function sess_gc($maxlifetime){
global $SESS_DBH;
$qry="delete from db_session where expiry $qid=mysql_query($qry,$SESS_DBH);
return mysql_affected_rows($SESS_DBH);
}
session_module_name();
session_set_save_handler("sess_open","sess_close","sess_read","sess_write","sess_destroy","sess_gc") ;
?>
4. テスト ファイルを作成します。
作成した session_mysql.php ファイルは、使用する前に参照する必要があります。
session_test.php
PHP コード:
コードをコピー
コードは次のとおりです:
php
include ("session_mysql.php"); session_start(); $_SESSION['abc']= "A: また来ます!"; ]= " B: 私もです "; $_SESSION['name']= "ルイ "; echo "クリックしてください 🎜>? >
get_session_test.php
コードをコピーします
コードは次のとおりです:
echo $_SESSION['abc'];
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() ;//すべてのセッションを破棄するために使用される関数。
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
