chatGPTに記事を書いてもらってます
Webサイトでは、ユーザーに入力してもらうことがよくありますよね。
名前やメールアドレスを入れてもらったり、検索したり…
そのときに使うのが フォーム(form) です!
フォームってなに?
HTMLでこんなふうに書きます:
<form action="result.php" method="post"> 名前:<input type="text" name="username"><br> <input type="submit" value="送信"> </form>
ポイント
・action="result.php"
➡ 入力内容を送信するPHPファイル名
・method="post"
➡ データをPOST形式で送信(他にも GET という方法もあります)
・name="username"
➡ PHP側で**この入力の名前(キー)**として使う
PHPで受け取ってみよう(result.php)
<?php $username = $_POST["username"]; echo "こんにちは、" . htmlspecialchars($username) . "さん!"; ?>
解説
・$_POST["username"]
➡ フォームの入力から「username」の内容を受け取る
・htmlspecialchars()
➡ 入力内容に危険な文字があっても安全に表示するためのおまじない(セキュリティ対策)
よくあるミス
ミスの例 | 原因と解決 |
---|---|
Notice: Undefined index | 入力名(name属性)が間違っている or 送信前にアクセスしている |
文字化けする | PHPファイルの文字コードを UTF-8 にしておこう |
値が何も出ない | method="post" の場合、$_POSTで受け取っているか確認! |
まとめ
キーワード | 説明 |
---|---|
<form> | ユーザーからの入力を受け取るHTML |
method="post" | POST形式でデータを送る(URLに表示されない) |
$_POST["キー"] | フォームの入力を受け取るPHPの書き方 |
htmlspecialchars() | 安全に画面に出すための関数 |
おまけ:GETでも送ってみよう
<form action="result.php" method="get"> <input type="text" name="word"> <input type="submit" value="検索"> </form>
<?php $word = $_GET["word"]; echo "「" . htmlspecialchars($word) . "」を検索しました!"; ?>
GETはURLに表示されるので検索などにおすすめ。
次回は、「フォームのバリデーションと複数項目の処理」を学びましょう