エッセイにオリジナリティを含めるべきかどうかわかりません。
それでは、最初のブログ投稿です。
3 つのクラスがあります:
1. フィルター入力 (軽量)
input_filter クラス
$_GET、$_POST などのパラメーターのフィルター処理を担当します
戻り値の型は、made_sql クラスのパラメーターとして使用されます
2. SQL文に変換
class made_sql
パラメータの型は配列とテーブル名(文字列)、配列のキー名はテーブルのカラム名、値は挿入値
戻り値の型は文字列、mysql ->query メソッドのパラメーターとして使用されます
3. データベース クエリ
mysql クラス
単一列モードを使用し、静的メソッドを使用してオブジェクトを取得します。詳細については、instanceof 演算子の関数を参照してください
class input_filter
{
private $ input_all; // フィルターされる配列
private $rustle; // フィルターされた結果
// コンストラクターのパラメーターは $_GET または $_POST これらの
関数です__construct($input_C)
{
if(is_array($input_C ))
$this->input_all = $input_C ;
else
echo 'パラメータが無効です'
//そうでない場合、PHP は型を認識しません。初めて配列をマージするときです
$this->rustle = array();
}
private function filter_arr() // Main function
{
foreach ($this->input_all as $key_input => $val_input)
{
//キー名が文字列でない場合は、エラー メッセージ
// キーの場合
if(!is_string($key_input)) // エラー
{
echo 'このキーは文字列ではありません' ;
return false;
}
// # は mysql です
$ key_one = str_replace('#','',$key_input); ;
// # の HTML エスケープ文字が見つからなかったので、代わりに empty を使用しました
// この関数は ' のみを変換します" には、すべてのシンボルをエスケープする同様の関数があります
$val = htmlspecialchars($val_one, ENT_QUOTES,'UTF-8');
//merge
$rustle_one = array($key=>$val);
/ /Merge array
$this->rustle = array_merge($this->rustle, $rustle_one);
}
}
//この関数は少し冗長なので、将来の拡張のために残されています
public function get_filter_rustle()
{
$this->filter_arr();
return $this->rustle ;
}
}
メソッドの呼び出し:
コードをコピーします
Class Madesql
return false;
else
$this ->Cnow_ary = $Cary; // 書き込まれた値
$this->Cname_str = $Cname; // データベーステーブル名
25 }
private function setSql; () // メイン関数、SQL ステートメントを生成します
{
foreach ( $this->Cnow_ary as $key_ary => $val_ary )
{
$cols_sql = $cols_sql.','.$key_ary; // 列名combin
$vals_sql = $vals_sql.', ''. $val_ary.''' ; //値の組み合わせ
}
// 前の foreach アルゴリズムに問題があるため、最初の文字はカンマです
// sunstr_replace() を使用して、最初の位置 (0) から開始して削除し、1 文字だけを置換します (1)
$cols_sql = substr_replace($vals_sql,'',0,1);
$vals_sql = substr_replace($vals_sql,' ',0,1);
$this->insert_sql =
' INSERT INTO '.$this->Cname_str.' ( '
.$cols_sql.' ) VALUES ( '.$vals_sql.' )' / / ステートメントの整形
}
//
public function getSql()
{
$this->setSql();
return $this->insert_sql;
3.この本では、データベース クエリ クラスはシングルカラム モードを指します (このように静的メソッドを使用してオブジェクトを取得します。スクリプトにはデータベース クエリ クラスのインスタンスが 1 つだけあります)
このクラスではシングルトン パターンが依然として役立つと思います
コードをコピーします
コードは次のとおりです:
class mysql
{
private $connect;
static $objectMysql; // オブジェクトを保存します
private function __construct() 7 {
// このコンストラクターは、オブジェクトを作成して初期化するときに呼び出されます
$connect = mysql_connect (' db address','password','dbname');
$this->db = mysql_select_db('db',$connect)
}
public static function Mysql_object()
{
//instanceof 演算子オブジェクトがクラスまたはインターフェイスのインスタンスに属しているかどうか。私が言ったことはあまり標準的ではありません...
//$objectMysql が mysql(self) のインスタンスではない場合は、インスタンスを作成します
if(! self::$objectMysqlinstanceof self)
self::$objectMysql = new mysql () ;
//この時点では、$objectMysql はすでにオブジェクトです
return self::$objectMysql;
}
public function query($sql)
{
return mysql_query($sql,$this->db) ;
}
}
それでは、使い方をまとめます
if( $mysql ->query($sql) )
echo 'Ok';
else
echo 'failure';
データベースへの書き込み操作を完了するには、これらの数行のコードのみが必要です
さらに、コンストラクターのプライベートとパブリックのプロパティについて話しましょう。 問題は、本では MySQL シングルトン モードのコンストラクターがプライベートとして宣言されているのですが、シングルトン モードがない場合、コンパイル エラーが発生することです。確認したところ、PHPではオブジェクトを作成できませんでした。
その理由は、オブジェクトの作成がクラスの外で行われることが多く、コンストラクターにアクセスできないという問題が発生するためです。 単一列モードでは、独自のクラスにオブジェクトが作成されるため、プライベート メソッドへのアクセスに制限はありません。
私は当初、シングルトン モードは同じオブジェクトの作成を防ぐだけだと考えていましたが、シングルトン モードはコンストラクターをカプセル化できるようです。これにより、filter_input クラスの結果を直接使用できるという前提が得られます。 madesql クラスのパラメータは次のとおりです:
フォームの名前はデータベースの列名と同じである必要があります。そうしないと、多くのことが無駄になります。
http://www.bkjia.com/PHPjc/324106.html
www.bkjia.com
true

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

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

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

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









