PHP デザイン パターン シリーズ - テンプレート パターン_PHP チュートリアル
テンプレートモード
テンプレート デザイン パターンは、一連のメソッドを実装する抽象オブジェクトを作成し、多くの場合、サブクラスはこのオブジェクトを独自のデザインのテンプレートとして使用します。
デザインシーン
通常、データベースの抽象クラスに使用されます。
コード設計:
[php]
if (!define('IS_INITPHP')) exit('アクセスが拒否されました!');
/*************************************************** * *********************************
* InitPHP 2.0 国産PHP開発フレームワーク Dao-dbbase Driver DB基本クラス
*------------------------------------------------ - ---------------------------------
* 著作権: CopyRight By initphp.com
※このソースコードはご自由にお使いいただけますが、ご使用の際は作者情報を保管しておいてください。他人の労働の成果を尊重することは、自分自身を尊重することです
*------------------------------------------------ - ---------------------------------
* $作者:zhuli
* $Dtime:2011-10-09
************************************************* * *********************************/
抽象クラス dbbaseInit{
/**
*抄録データベースリンク
* @param string $host SQL サーバー
* @param string $user データベースのユーザー名
* @param string $password データベースログインパスワード
* @param string $database データベース
* @param string $charset エンコーディング
* @param string $pconnect リンクが永続的かどうか
*/
抽象保護関数 connect($host, $user, $password, $database, $charset = 'utf8', $pconnect = 0);
/**
* *抽象的なデータベース実行ステートメント
* @param string $sql SQL ステートメント
* @return obj
*/
抽象保護関数クエリ($sql);
/**
*抽象データベース - 結果セット内の行数
* @param $result 結果セット
* @return 配列
*/
抽象保護関数 result($result, $num=1);
/**
*抽象データベース - 結果セットから連想配列として行を取得します
* @param $result 結果セット
* @return 配列
*/
抽象保護関数 fetch_assoc($result);
/**
*抽象データベース - 結果セットから列情報を取得し、オブジェクトとして返します
* @param $result 結果セット
* @return 配列
*/
抽象保護関数 fetch_fields($result);
/**
* 抽象データベース - 前の操作によって影響を受けたレコードの数
* @return int
*/
抽象保護関数affected_rows();
/**
*抽象データベース - 結果セット内の行数
* @param $result 結果セット
* @return int
*/
抽象保護関数 num_rows($result);
/**
* * 抽象データベース - 結果セット内のフィールドの数
* @param $result 結果セット
* @return int
*/
抽象保護関数 num_fields($result);
/**
*抽象データベース - 前の INSERT の ID 値を取得します
* @return Int
*/
抽象保護関数 insert_id();
/**
*抽象データベースリリース結果メモリ
* @param obj $result 解放する必要があるオブジェクト
*/
抽象保護関数 free_result($result);
/**
※抄録データベースのリンクは閉鎖しました
* @param string $sql SQL ステートメント
* @return obj
*/
抽象保護関数 close();
/**
* エラーメッセージ
* @戻り文字列
*/
抽象保護関数 error();
}
if (!define('IS_INITPHP')) exit('アクセスが拒否されました!');
/*************************************************** * *********************************
* InitPHP 2.0 国産 PHP 開発フレームワーク Dao-mysqli 基本クラス
*------------------------------------------------ - ---------------------------------
* 著作権: CopyRight By initphp.com
※このソースコードはご自由にお使いいただけますが、ご使用の際は作者情報を保管しておいてください。他人の労働の成果を尊重することは、自分自身を尊重することです
*------------------------------------------------ - ---------------------------------
* $作者:zhuli
* $Dtime:2011-10-09
************************************************* * *********************************/
クラス mysqliInit extends dbbaseInit{
パブリック $link_id; //链接对象
/**
* MYSQL コネクタ
* @param string $host SQL サーバー
* @param string $user データベースのユーザー名
* @param string $password データベースログインパスワード
* @param string $database データベース
* @param string $charset エンコーディング
* @param string $pconnect リンクが永続的かどうか
* @return obj
*/
public function connect($host, $user, $password, $database, $charset = 'utf8', $pconnect = 0) {
$link_id = ($pconnect == 0) ? mysqli_connect($host, $user, $password) : mysqli_pconnect($host, $user, $password);
if (!$link_id) InitPHP::initError('mysql 接続エラー!');
mysqli_query($link_id, 'SET NAMES ' . $charset);
if (!mysqli_select_db($link_id, $database)) InitPHP::initError('データベースが存在しません!');
$link_id を返します;
}
/**
* SQL エグゼキュータ
* @param string $sql SQL ステートメント
* @return obj
*/
パブリック関数クエリ($sql) {
return mysqli_query($this->link_id, $sql);
}
/**
* *結果セット内の行数
* @param $result 結果セット
* @return 配列
*/
パブリック関数 result($result, $num=1) {
return mysqli_result($result, $num);
}
/**
* 結果セットから連想配列として行を取得します
* @param $result 結果セット
* @return 配列
*/
パブリック関数 fetch_assoc($result) {
mysqli_fetch_assoc($result) を返します;
}
/**
* 結果セットから列情報を取得し、オブジェクトとして返します
* @param $result 結果セット
* @return 配列
*/
パブリック関数 fetch_fields($result) {
mysqli_fetch_field($result) を返します。
}
/**
* *結果セット内の行数
* @param $result 結果セット
* @return int
*/
パブリック関数 num_rows($result) {
mysqli_num_rows($result) を返します;
}
/**
* *結果セット内のフィールドの数
* @param $result 結果セット
* @return int
*/
パブリック関数 num_fields($result) {
mysqli_num_fields($result) を返します。
}
/**
*リリース結果メモリ
* @param obj $result 解放する必要があるオブジェクト
*/
パブリック関数 free_result($result) {
mysqli_free_result($result) を返します。
}
/**
* 前の INSERT の ID 値を取得します
* @return Int
*/
パブリック関数 insert_id() {
return mysqli_insert_id($this->link_id);
}
/**
* * 前回の操作によって影響を受けたレコードの数
* @return int
*/
パブリック関数affected_rows() {
return mysqli_affected_rows($this->link_id);
}
/**
*接続を閉じる
* @return bool
*/
パブリック関数 close() {
if ($this->link_id !== NULL) @mysqli_close($this->link_id);
$this->link_id = NULL;
true を返します。
}
/**
* エラーメッセージ
* @戻り文字列
*/
パブリック関数 error() {
return mysqli_error($this->link_id);
}
}
作者:initphp

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

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

ホットトピック









