1. ファイルをアップロードする際に注意すべき点は何ですか?指定したディレクトリにファイルを保存するにはどうすればよいですか?重複した名前のファイルをアップロードする問題を回避するにはどうすればよいですか?
1) まず、php.ini でファイルのアップロードを有効にする必要があります。
2) php.ini にはアップロードできる最大値があり、デフォルトは 2MB です。必要に応じて変更できます
3) フォームをアップロードするときは、必ず enctype="multipart/form-data" を記述してください
5)。 ) フォーム コントロールを type="file" で設定し、name 属性値を指定する必要があります
6)。要件、およびアップロード後に保存されるパスが存在するかどうか。
7) フォームは受信ページに送信され、受信ページはアップロードされたファイルを受信するために $_FILES を使用します。 $_FILES は多次元配列です。
1 次元の添字はアップロード コントロールの名前で、2 次元の添字は name/type/tmp_name/size/error です。
それぞれ、ファイル名、ファイルタイプ、一時ディレクトリにアップロードされた一時ファイル名、ファイルサイズ、エラーの有無を表します。
バッチアップロードの場合、2 次元の添字は文字列ではなく配列になります。
8) ファイルがアップロードされた後、ファイルはサーバー側の一時パスに配置され、アップロードされたファイルを指定したディレクトリに保存する必要があります。
9) 重複した名前のファイルのアップロードを避けるために、アップロードされたファイル名からファイル接尾辞を取得し、タイムスタンプとファイル接尾辞を使用してファイルの名前を変更できます。
2. $_REQUEST、$_GET、$_POST、および $_COOKIE の関係と相違点:
SQL インジェクション攻撃は、ハッカーがデータベースを攻撃するために使用する一般的な手段の 1 つです。一部のプログラマーは、ユーザー入力データの正当性を判断しません
インジェクターは、フォームにデータベース クエリ コードを入力して送信することができます
プログラムは、送信された情報を組み合わせて完全な SQL ステートメントを生成します。サーバーはだまされて悪意のある SQL コマンドを実行します。プログラムから返された結果に基づいて、インジェクターは機密データを取得し、さらにサーバー全体を制御します。これが SQL インジェクションです。
送信された情報をフィルターするには、一重引用符をエスケープします。
まず、送信後にすべての一重引用符がエスケープされるように php.ini で設定できます。または、addslashes() を使用します。
4. MVC の概念は何ですか?
MVC (Model-View-Controller) は、1980 年代に発明されたソフトウェア設計パターンまたはプログラミングのアイデアです。
M は (Model) モデル層を指し、V は (View) ビュー層 (表示層またはユーザー インターフェイス) を指し、C は (Controller) 制御層を指します。
mvc を使用する目的は、M と V を分離して、1 つのプログラムで異なるユーザー インターフェイスを簡単に使用できるようにすることです。
C の存在の目的は、M と V の同期を確保するために M と V の間を調整する役割を果たすことです。M が変更されると、V も同期して更新される必要があります。
M と V を分離すると、M レイヤー プログラムを変更することなく、事前に複数のビュー レイヤー テンプレート ページを作成するだけで、同じ Web ページに異なるページ スタイルを表示させることができます。
MVC は、プログラミングの分業と協力を実現し、コードの再利用性を最大限に高め、プログラム ロジックをより明確かつより整理して、将来の保守と管理を容易にします。
Web サイト開発では、
モデル層は通常、データベース テーブル情報の追加、削除、変更、確認を担当します。
ビュー層は、ページ コンテンツの表示を担当します。
コントローラー層は、M 間の調整の役割を果たします。 V. コントローラー層 どのモデル クラスのどのメソッドを呼び出すかを決定します。 実行が完了した後、コントローラー層は結果をどのビュー層に割り当てるかを決定します。
5. $this、self、parent はそれぞれ何を表しますか?いつ使用するか
$this は現在のオブジェクトを表します self は現在のクラスを表します 親は現在のクラスの親クラスを表します
使用状況:
$this は $this-> を通じて現在のクラスでのみ使用できます。現在のクラスの属性とメソッドを呼び出すことができます。
self は現在のクラスでのみ使用でき、スコープ演算子:: ;
parent を介してクラス定数、現在のクラスの静的プロパティ、および現在のクラスのメソッドにアクセスします。親クラスを持つ現在のクラスでのみ使用でき、スコープ演算子:: を介してクラス定数、親クラスの静的プロパティ、および親クラスのメソッドにアクセスします。
演算子が使用される場合に動作します
a) このクラス内:
i.self::Class constant
ii.self::Static property
iii.self::Method()parent:: Method( )
b) サブクラス内:
i.parent::クラス定数
ii.parent::静的プロパティ (public または protected)
iii.parent::Method () (public または protected)
c )クラス外:
i.クラス名::クラス定数
ii. クラス名:: 静的プロパティ (パブリック)
iii. クラス名:: 静的メソッド (パブリック)