検索
ホームページphp教程php手册PHP は mysql データベースを使用してセッション コードを保存します

PHP は mysql データベースを使用してセッション コードを保存します

Jun 13, 2016 pm 12:18 PM
cookiemysqlphpsession1つコードストレージクライアントデータベース機械使用

隠れた危険 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 "

  • MySql エラー:".mysql_error()."
  • ";
    die()
    }
    if(!mysql_select_db($gb_DBname) ,$SESS_DBH)){
    echo "
  • MySql エラー:".mysql_error()."
    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



    コードをコピーします

    コードは次のとおりです:

    include ("session_mysql.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() ;//すべてのセッションを破棄するために使用される関数。
    ?>


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

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

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

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    SecLists

    SecLists

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

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強力な PHP 統合開発環境