アフィリエイト広告を利用しております。
参考サイトの記載がある場合はそちらの方がより詳しく記載説明がされているのでぜひそちらもご覧ください。
そのままコピペしても反映されないものもあります。サイトごとに変えないといけない箇所がありますので修正してください。

HTML PHP

【第6回】ユーザーの入力を受け取ろう!はじめての「フォーム連携」

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に表示されるので検索などにおすすめ。


次回は、「フォームのバリデーションと複数項目の処理」を学びましょう

おすすめ記事

1
制作理由 ワードプレスのクラシックエディタを直接使っているといつも思うことがありました [Tab]キー押して空白入れて見やすくインデントしたい! この記事を書くまでは入れないか、スペースキーを押して誤 ...
2
制作理由 ワードプレスのクラシックエディタを直接使っているといつも思うことがありました コード追加ボタンを自由に追加出来たら便利じゃない? この記事を書くまでは、クリップボード貼り付けアプリ[Clib ...
3
アプリ制作するに至った理由 納品代行の仕事をしていて思ったことがあります 納品代行をしていると本当に様々なお客様から様々な商品が届きます その中でも特に注意しているのが、「見た目ほぼ同じだけど違う商品 ...

-HTML, PHP
-