shop34-11- プロファイルシステム
プロファイル
アプリケーションには、ディレクトリ、サブディレクトリの追加設定に表示されたプロジェクト管理のためのコンフィギュレーション・ファイルを:
デザイン、設定ファイル、ストアデータ形式:
するために、比較可能管理:
初期化プロジェクトは、コンフィギュレーション・ファイルをロードする際に、設定情報
フレームワーククラス、ローディングの動作構成に増やします。
で一定の初期化の完全なパスは、設定の初期化を完了することができます:
使用するコンフィギュレーションを:
分布のパラメータ:
データベースサーバー情報:
モデル:
SessionDB :
shop34-12- 防ぐためのSQL インジェクションを
項目防止するために添加 SQLのコードインジェクションを
MySQLdbでは、ターン完了することができます追加 -defined あなたが呼び出す必要があるときには、モデルでは、方法を!
/ * 防止、SQL インジェクションは、自動的に伝統的な価値観をエスケープ* / 関数escapeString($ strの){ 返します$ this-> DB->($ strを)real_escape_string。 } |
プロジェクトでは、使用 AdminModel 、完全な変換を:
するために避ける、整数データはないかもしれない SQLは、引用符力増大にパッケージデータを変換引用符。
パッチワークのSQLの引用符を追加することなくデータ:
先端:
PHPでマジッククオート( PHPでマジッククオート)は、自動的にデータを要求(GET 、POSTが)増加脱出防止SQL インジェクション機構が。
shop34-13-DAOの層を抽出します
プロジェクトのためで PDOを使用
PDOの使用は、実現のMySQLdb DAO 外部オブジェクト操作と一致する追加の一種のDAOの実装を行うことができるモデル切替 DAOを、モデル(ホットスワップ、シームレスなハンドオーバ)の任意のコードを変更する必要がされていません
DAO増加インタフェースの動作(I_DAO) 、すべての DAO の定義( MySQLの拡張、PDOの拡張)があろう達成同じDAOのオペレータインタフェースを(I_DAO)
shop34-14- 背景ホームショー
背景ホーム機能
主な機能
フレームセットのレイアウト、各フレーム、する必要性機能アクションのプロジェクトを要求し、最終ショーの完成!
戻る/ ManageController-> indexAction()
完全なバックグラウンドモード版のindex.html
各フレーム機能
実装に対応するビューテンプレートを:
shop34-15- プラットフォームコントローラ- 集中認証
背景公共ログイン認証 - プラットフォーム・コントローラー
背景だけでなく、 Manage-> indexaction()が必要ですログイン認証を、そして他のアクションはログイン認証する必要があります。
動作は、現在のプラットフォーム共通のコントローラ機能の背景に属します。
プラットフォームコントローラの背景を増やし、適切な検証を完了します。
他のコントローラでプラットフォームは、プラットフォームコントローラから継承されます。
検証ログイン操作に移動し PlatformController :
実装:
通話の機会:
(コンストラクタが実行される)場合、オブジェクトの背景コントローラをインスタンス化します。
テスト:
すでに検証済みでログインして、ログオンにジャンプしますが、ログインページが正しくロードされないではないが見つかりました:
なぜ?
要求管理者のログイン時間、私たちは、ログインするかどうか、ではないにジャンプで判断しなければならない管理者のログイン無限ループになり、。
可視:アクション舞台裏ログイン検証の大半は、実装に必要とされるが、例外があります、関連のログインパスワードなどを回復します。
ときにアクションは特殊なケースの判断ではない場合、それは、ログインするかどうかを判断する必要があります。
特殊なケースを確認する方法?
オープン以来セッション公共の場所では、バックグラウンドでの動作は、あなたが再オープンする必要はありませんセッションで:
adminController->()アクションをチェック
shop34-17- ログイン認証コード
コードの分析
ログイン:ブルートフォースを防ぎます
フォーラム:灌漑水を防ぎます
ディスプレイのカテゴリは:クロールします。
技術ニーズ:
画像処理技術。
セッションセッション技術。
PHPの画像処理技術 - GD
具体的な手順
オープン GDの拡張
Apacheの再起動
シーン:
生産 500×300 グリーン写真
キャンバスの作成
キャンバス、リソースタイプのデータ。缶画像リソース操作。
作成新しいキャンバスを(新)
ImageCreate(幅、高さ)、キャンバスに基づいてパレットを作成します。
imageCreateTrueColor(幅、高さ);作成の真の色キャンバス。
基づいてキャンバスを作成するために、画像(オープン)
imageCreateFromJPEG(ピクチャアドレス)。
imageCreateFromPNG(ピクチャアドレス)。
imageCreateFromGIF(ピクチャアドレス)。
営業キャンバス
割り当て色を:あなたは場合はキャンバスに色を使用する必要がある、あなたがすべきことキャンバスに割り当てられた色。
使用する機能を:
色識別 = imageColorAllocate(キャンバス、 R&LT 、 G 、B)。
色表現:
RGB
充填されたキャンバス:充填点、及び連続同じ色ポイントのための充填(置換)
使用する機能を:
(ImageFill キャンバス、充填位置 X 、 充填の位置 Y 、完了するために皮膚を)
場所の座標管理を使用しました:
原産地: 0 、0は、キャンバスの左上隅を。
右、 Xが増大するγ軸、下方向にYは、 γ軸が増加します。
右下隅には、座標:幅1、高さ-1
出力キャンバス
キャンバスディールパターン情報、および出力します。
典型的なの:
1つの画像ファイルに出力。
2 ダイレクト出力。
使用する機能を:
imagePNG(キャンバス[、ファイルアドレス]):
imagejpeg();
imagegif();
何の場合は2番目のパラメータは、ダイレクト出力を表していません。
直接の場合は、ブラウザへの出力は、ブラウザに指示する必要があり、応答データの種類があるべき PNG形式の画像:
使用説明書コンテンツタイプ
ヒント:キャンバスを出力することができる何回も、出力フォーマットのさまざまな!
破壊キャンバスリソース
imageDestroy();
プロジェクトで実装コード
コードツールカテゴリ
フレームワーク/ツール/ Captcha.class.php
自動負荷:
生成CAPTCHAイメージは:
セッションの重複を避けるために開いています:
背景場所:
ログインフォーム際ショー
することにより、ログインフォームページ IMGタグ、生まれ要求に画像のURL アドレスと表示画像。
<IMG SRC =」URL」/>
増加ログイン画面背景画像認証コードを生成が完了するの作用:
戻る/ AdminController-> captchaAction();
ページののimg タグのsrc 属性、要求されたアクション:
ヒント:場合は、画像の表示が失敗し、どのようにデバッグするには?
それはすべき直接リクエスト生成された画像を扱う、というよりも、のimg [表示]タブを。
私のプログラムは、あるべき captchaAction()もログイン認証の例外としてリストされています。
背景プラットフォームコントローラの:
結果:
クリックして交換します:
することで、イベントをクリックして、新しい形成するために、生産検証画像アドレスの再要求ディスプレイに確認コードを!
IMGの場合、タグのsrc 属性が変更され、新しいブラウザがします、URL リクエストを、表示されるIMGを画像領域内。