ホームページ >バックエンド開発 >PHPチュートリアル >PHPでフォームを実装する方法
1. フォームの基本的な使用法
データ送信専用のタグが HTML にあります: ff9c23ada1bcecdd1a0fb5d5a0f18437 を使用すると、ユーザー入力を簡単に収集できます。
form タグには 2 つの必須属性があります。
アクション: フォーム送信アドレス (記入後誰に送信するか)
メソッド: フォームの送信方法
Forたとえば、ログイン インターフェイスでユーザーが入力したユーザー名とパスワードを収集する必要があります。
<!DOCTYPE html> <html> <head> <meta charset="UTF‐8"> <title>登录</title> </head> <body> <form action="login.php" method="post"> <div> <label for="username">用户名</label> <input type="text" id="username" name="username"> </div> <div> <label for="password">密码</label> <input type="password" id="password" name="password"> </div> <button type="submit">登录</button> </form> </body> </html>
現在の状況によると、ユーザーは初めてこのフォーム ページをリクエストし、フォームの内容を入力し、 「ログイン」をクリックすると、フォームが自動的にlogin.phpに送信されます。残りの問題は、ユーザーが送信したコンテンツをlogin.phpで取得する方法を検討することです。
PHPには3つのスーパーグローバル変数があります。特にフォーム送信コンテンツの取得に使用されます:
$_GET : GET メソッドによって送信されたコンテンツの取得に使用されます
$_POST: POST メソッドによって送信されたコンテンツの取得に使用されます
$_REQUEST: GET またはPOST メソッド
$_POST または $_REQUEST を使用すると、フォームによって送信されたコンテンツを取得できます:
<?php // 获取表单提交的用户名和密码 echo '用户名:' . $_REQUEST['username']; echo '密码:' . $_REQUEST['password'];
1.1. 送信アドレス
アクション 送信アドレスは、このフォームへの入力を指します。完了したら、[送信] をクリックして、リクエストを送信するためのリクエスト アドレスを決定します。
メンテナンスの容易さの観点から、一般的には、現在のファイルに送信してから、現在のファイルでフォーム送信リクエストであるかどうかを判断するのが最も一般的です。
<?php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 表单提交请求 }
さらに、次のようにすることをお勧めします。 $_SERVER ['PHP_SELF']
を使用するには、現在のページのアクセス パスを動的に取得します。これにより、ファイル名の変更や Web サイトのディレクトリ構造の調整によってコードを変更する必要がなくなります:
<!‐‐ 这样写死 action 地址,当文件重命名就需要修改代码 ‐‐> <form action="/foo/login.php"> <!‐‐ ... ‐‐> </form> <!‐‐ 通过 `$_SERVER['PHP_SELF']` 获取路径,可以轻松避免这个问题 ‐‐> <form action="<?php echo $_SERVER['PHP_SELF']; ?>"> <!‐‐ ... ‐‐> </form>
1.2. 送信メソッド
メソッドを使用してフォーム送信メソッドを設定できます。現在、最も一般的なフォーム送信メソッドは GET と POST の 2 つです。
効果の観点から見ると、どちらもサーバーにデータを送信できますが、実装の原則という点ではこの 2 つは大きく異なります:
GET
フォーム データは URL の ? パラメーターを介して渡されます。
サーバーに渡されます 送信された内容がアドレスバーに表示されます
URLアドレスの長さに制限があるため(2000文字)、データ長も制限されます
POST
フォームデータがサーバーに渡されます。リクエスト本文 サーバー側では、インターフェース上でそれを見ることができません
ファイルを含むあらゆる種類のデータを送信できます
インターフェース上では見えず、ブラウザーに保存されないため、より安全です
どのような状況でどちらを使用するかについては、ビジネス シナリオと 2 つの方法のそれぞれの特性に基づいて決定する必要があります。絶対的な答えはなく、いくつかの原則のみが与えられます。
決して使用しないでください。パスワードやその他の機密情報を送信するには GET! ! !
このリクエストは主に何かを取得するためのものなのか、何かを送信するためのものなのかを明確に考える必要があります
2. 共通のフォーム要素の処理
フォーム内のテキストについてelement ボックステキストフィールドなどの要素は、要素の name 属性値をキーとして、ユーザーが入力した情報を値として直接使用し、サーバーに送信されます。ただし、別途考慮する必要がある特別なフォーム要素がいくつかあります:
2.1 ラジオ ボタン
<!‐‐ 最终只会提交选中的那一项的 value ‐‐> <input type="radio" name="gender" value="male"> <input type="radio" name="gender" value="female">
2.2. チェック ボタン
<!‐‐ 没有设置 value 的 checkbox 选中提交的 value 是 on ‐‐> <input type="checkbox" name="agree"> <!‐‐ 设置了 value 的 checkbox 选中提交的是 value 值 ‐‐> <input type="checkbox" name="agree" value="true">
複数の選択したアイテムを同時に送信する必要がある場合は、name 属性の後に [] を付けることができます:
https://www.php。 net /manual/zh/faq.html.php#faq.html.arrays
<input type="checkbox" name="funs[]" id="" value="football"> <input type="checkbox" name="funs[]" id="" value="basketball"> <input type="checkbox" name="funs[]" id="" value="world peace">
最終的にサーバーに送信され、$_POST を通じて受信されるのはインデックス配列です。
2.3. 選択ボックス
<select name="subject"> <!‐‐ 设置 value 提交 value ‐‐> <option value="1">语文</option> <!‐‐ 没有设置 value 提交 innerText ‐‐> <option>数学</option> </select>
2.4 ファイルアップロード
type 属性が file である入力要素は、次のことができます。ファイルを送信 (ファイルをアップロード) するフォームを通じて渡されると、サーバー側 PHP は $_FILES を通じてアップロードされたファイル情報を取得できます。
<?php // 如果选择了文件 $_FILES['file']['error'] => 0 // 详细的错误码说明:http://php.net/manual/zh/features.file‐upload.errors.php if ($_FILES['file']['error'] === 0) { // PHP 在会自动接收客户端上传的文件到一个临时的目录 $temp_file = $_FILES['file']['tmp_name']; // 我们只需要把文件保存到我们指定上传目录 $target_file = '../static/uploads/' . $_FILES['file']['name']; if (move_uploaded_file($temp_file, $target_file)) { $image_file = '/static/uploads/' . $_FILES['file']['name']; } }
$_FILES も連想配列で、キーはフォームの名前で、内容は次のとおりです:
array(1) { ["avatar"]=> array(5) { ["name"]=> string(17) "demo.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(27) "C:\Windows\Temp\php786C.tmp" ["error"]=> int(0) ["size"]=> int(29501) } }
さらに関連する質問については、PHP 中国語 Web サイトを参照してください。 PHP ビデオ チュートリアル
以上がPHPでフォームを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。