ログインロゴ
通常は、現在ログオンしているユーザー保存する必要が(管理者)機能情報を!
では メモリあなたが旗をログインしたときに、現在の管理者が中に格納されている情報取得するセッションでは:
戻る/ AdminController-> checkAction();
バックが必要/ AdminModel->チェック()メソッドは、情報が管理者のために返される(合法的なケース):
バック/ PlatformControllerで- > _ checkLogin( )での検証管理者かどうか、ログイン、使用の管理インデックス:
出口は、破壊もサインです。
戻る/ AdminController-> LogoutActionは();
ページは、管理者の情報を取得することができます:
戻る/のtop.html、ディスプレイ:こんにちは 管理!
shop34-19- 追加するアイテム
機能:追加商品フォームを
index.phpを?P =バック&C =製品&Aは=追加
コントローラのアクション:
新商品のコントローラクラス
アプリケーション/バック/コントローラ/ GoodsController.class.php
addAction():
モデル:
ビューテンプレート:
ビュー層の増加テンプレートを:
アプリケーション/バック/ビュー/ goods_add.html
それは、対応する必要がの JSを:
一部残し、タブ、およびフォーム要素を:
サプリメント
[編集]メニューの menu.htmlテンプレート、アクション要求を追加します。
戻る/ビュー/ menu.html
機能:処理製品はデータを追加します
index.phpを?P =バック&C =製品&A =挿入
コントローラ- アクション
戻る/ GoodsController-> insertAction();
提出のチェックボックス時間:
もし:チェックした場合、それはある値の属性値。
場合はチェックしない:フォームが用意されていません。そのポストデータ(_POST ない要素)
推奨:
使用した命名アレイモード、及びデータテーブルに挿入する必要がある値:
治療:
)(insertActionを達成します。
モデル
商品のため、テーブルの作成オペレーティングモデルを:
アプリケーション/バック/モデル/ GoodsModel.class.php
フォーマット文字列:
sprintfは()することができます完了のためのフォーマット文字列:
sprintf(フォーマット、フォーマットに必要なデータ)
ヒント:データ参加 SQLの実行、我々は予防しなければならないSQLのエスケープを使用し、注入を!
この時点で、モデルレベルで、私たちは、アレイ内のすべてのデータを、バッチエスケープ提供できる機能を:
ベースモデルには、メソッドを追加します。
escapeStringAll();
あなたはする必要があるメソッドを呼び出します。
戻る/ GoodsModel-> insertGoods()
ビュー- テンプレート
補足:
商品一覧
shop34-20- テーブルプレフィックス処理
モデル- プレフィックス処理
実際のテーブル名 =接頭辞(プロジェクト) +論理テーブル名(機能)
プレフィックス:設定ファイル経由で設定。
コンフィグ/ application.config.php
ロジックテーブル名:モデルクラス自体に決定。
Modelクラスで増加したプロパティ: _logic_table
ワンピース一緒に実際のテーブル名を:
ベーシックモデルでは、初期化の増加本物のオペレーティングテーブル名を:
テーブル名バッククォートパッケージ!
インスタンス化時にオブジェクトモデル、実際のテーブル名の初期化の完了:
財団のモデルの構築方法:
使用する実際のテーブル名を:
モデルでは、パッチワークの SQL文使用して $この- > _テーブル:
shop34-21- ファイルアップロードツール
ファイルのアップロード
アップロード:
送信されたサーバ側へのブラウザ。
リクエスト:
データからの送信サーバーへのブラウザの終わり。
目に見えます:
アップロードは、ブラウザがサーバプロセスに要求を行うに起こりました。
ファイルは、のために、ブラウザが懸念され、データのみの特殊なタイプの形態です。
ブラウザの形式のデータの2種類:種類。
1、 文字列型。(バイトストリーム符号化)
2、ファイルタイプ。(二値化)
(ヒント:ファイルは、形式のデータであるの一部)。
送信フォームは、データの形式で自動的にブラウザは、サーバに送信し、ファイルタイプが含まれますされています。
サーバの角度:
ブラウザのインタビューで要求、フォームを処理中のデータ。
異なるタイプのデータ(2 種類)、使用した異なるアプローチ:
図1に示すように、 文字列型の中に格納されているの$ _POST変数(メモリ)で
2、ファイルの一時ディレクトリのアップロードに保存されているタイプのデータ、。
フォームの提出の時間を:ブラウザは、フォーム内のデータがあるとの見方デフォルトとなる文字列(偶数とタイプのファイルのファイルドメインを)、経由フォーム増加財産上の形式のデータの型が文字列を持っているだけではなく、ブラウザに指示します。
フォームにenctype =」multipart / form-データ」
PHPのフォームデータファイルの種類を受け取った後、サーバー:
ファイルをアップロードするには、一時ディレクトリに保存されます。つまり、一時ファイル、有効な有効期間内のスクリプト。
PHPによるさんphp.iniの設定:
デフォルトのサーバー・オペレーティング・システムの一時ディレクトリの。
必要と永続ストアをアップロードする一時ファイルを!(するために指定された場所に移動)
機能:
Move_uploaded_file(アップロード一時アドレス、宛先アドレス)。
完成
する必要が使用 $ _FILESの配列を仮のアドレスを含む情報の一時ファイルのアップロードを、保存し、!
各一時ファイルのアップロードがある 5つのメッセージ、名前:元のファイル名、タイプの:タイプ、tmp_name 、一時アドレス、エラー:エラーとエラーの種類がある場合は、サイズ:サイズが。
典型的なコードをアップロード
することで、ファイルの属性情報の判断、ファイルが利用可能であるか否かを判断します!
タイプ:表現 2 種類:
拡張子:ファイルシステムは、プログラムがファイルを識別します。
MIME (多目的インターネットメール拡張):トランスポートネットワークリソース、表現を使用するリソースタイプ。
テキスト/ HTML; 画像/ PNG
拡張インターセプト:
$ファイル= 'xyzpng';
エコーstrrchr($ファイル、 '');
// 文字列の位置にあるサブストリングの最後に出現し、文字列の末尾から取るべき位置を見つけます。
Array_merge()配列マージ
array_unique()を除去するために二連で配列要素の値を
名前を変更したファイルを:
使用する元の名前を。(重複名、特殊文字は、 持っていない論理的な意味を)
名前付き: uniqid();
Uniqidは()も一意の文字列のプレフィックスを生成し、設定することができました。
タイプ検出:
サフィックスと MIME
以上の2つの値は、ブラウザのリクエストにより提供されています。
必要サーバ PHP自体完全な MIMEの検出を:
必要な PHPの拡張: のFileInfo 完全なファイルへの検出情報。
それは提供して二組のオブジェクト指向構文と機能を:
使用オブジェクト指向構文それ:
開き、この拡張機能を:
Apacheの再起動
分子ディレクトリアップロードされたファイルを格納するための
原理:ビジネス・ロジック。ファイルの数。よると、時間。
MKDIR(ディレクトリアドレス)を作成するディレクトリを
Is_dir(ディレクトリアドレス)を検出ディレクトリを
取得するには日付()日付と時刻を
プロジェクトが使用します
アップロードツールのカテゴリを:
完全に自動的にロード:
製品の追加使用を:
戻る/ GoodsController-> insertAction();
モデル、処理 goods_image_ori:
戻る/ GoodsModel-> insertGoods();
変更し、それはファイルをアップロードし、設定することができるようにフォームをファイル、フォーム要素をから名前。
戻る/ IEW / goods_add.html