👋

php formで送信されたものを受け取る

2021/04/18に公開

はじめに

htmlファイルのformで送信されたものをphpで受け取る方法をまとめます。
MAMPを使ってphpの操作をしています。

リクエストを受け取る

  • formのmethodの指定によってphp側で受け取り方を指定する必要があります。
  • 引数にはnameで指定したものが入ります。

$_GET['']...getで送られたものを受け取ります
$_POST['']...postで送られたものを受け取ります
$_REQUEST['']...post、getどちらも受け取ります

htmlspecialchars

  • フォームにhtmlタグを入力された際にエスケープします
  • フォームにhtmlタグを入力された際、htmlが認識されるのを防ぎます
  • 2つのパラメーターを受け取ることができます

※ jsなどを組み合わせて入力された場合、危険です。

htmlspecialchars(エスケープ対象(文字列), フラグ)

htmlspecialchars リファレンス

テキストボックス

  • テキストボックスに記述されたものがphp側に渡ります
    Image from Gyazo
index.html
<form action="submit.php" method="get">
    <label for="my_name">お名前:</label>
    <input type="text" id="my_name" name="my_name" maxlength="233" >
    <input type="submit" value="送信する">
</form>

_REQUESTを_GET[にしても受け取れます。

sample.php
<pre>
    お名前: <?php print(htmlspecialchars
    ($_REQUEST['my_name'], ENT_QUOTES)); ?>
</pre>

ラジオボタン

  • valueに記述されたものがphp側に渡ります

Image from Gyazo

<form>
    <p>血液型:
    <input type="radio" name="blood" value="A">A型/
    <input type="radio" name="blood" value="B">B型/
    <input type="radio" name="blood" value="O">O型/
    <input type="radio" name="blood" value="AB">AB型
    </p>    
    <input type="submit" value="送信する">
</form>
submit.php
<pre>
    性別: <?php print(htmlspecialchars
    ($_POST['blood'], ENT_QUOTES)); ?>
</pre>

Discussion