HTML FORM と HTTP POST Method | Webプログラミング!(2021年度)

Time-stamp: "2018-10-05 Fri 14:34 JST hig"

HTTP POST Method, HTML Form

説明

  • Chrome の Developer Tools では, Network で見られるログの中から, Method=POSTの 行を選ぶと, Request と Response の内容が確認できる.
  • PHP側で echo(file_get_contents(php://input));

サンプル1

サンプル1

index.php

こっちはPHPでなくHTMLでもいい


<!doctype html>
<html lang="ja">
    <head>
	<meta charset="UTF-8" />
	<title>test of html form and post method</title>
  </head>
  <body>
    <h1>FormとPOSTのサンプル</h1>
    <form action="result.php" method="post">

   <h2>隠しフィールド</h2>
   <input type="hidden" name="mode" value="1"/>

   <h2>学籍番号(セレクトボックス+テキスト)</h2>
      <select name="Fgakubu">
	<option value="t">理工</option>
	<option value="c">社会</option>
	<option value="w" selected="selected">国際</option>
	<option value="x">他</option>
      </select>
      <input type="text" name="Fnumber" value="t000000" size="6"/>

   <h2>暗証番号(テキスト)</h2>
      <input type="text" name="Fmagicnum" size="4"/><br/>

   <h2>選択肢(ラジオボタン)</h2>
      a<input type="radio" name="Fchoice" value="1">
      b<input type="radio" name="Fchoice" value="2">
      c<input type="radio" name="Fchoice" value="3" checked="checked">
      d<input type="radio" name="Fchoice" value="4">
      <br/>

   <h2>長文(テキストエリア)</h2>
      <textarea name="Fcomment" rows="5" cols="20" wrap="off"></textarea>

   <h2>これは練習?(チェックボックス)</h2>
      <input type="checkbox" name="Fcheck" value="1"/>はい<br/>

      <input type="submit" value="送信"/>
      <input type="reset" value="クリア"/>
    </form>
  </body>
</html>

result.php


<!doctype html>
<html lang="ja">
    <head>
	<meta charset="UTF-8" />
	<title>送信結果</title>
    </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <h1>送信結果</h1>

<p>このサンプルこのまま使うな危険</p>
<?php
   if(isset($_POST["Fgakubu"])){
     $g=$_POST["Fgakubu"];
   }
 /* 略記 @はエラー無視を指示*/
$mo=@$_POST["mode"];
$n=@$_POST["Fnumber"];
$c=@$_POST["Fcomment"];
$m=@$_POST["Fmagicnum"];
$ch=@$_POST["Fchoice"];
$che=@$_POST["Fcheck"];

/* サーバ変数 */
$b=$_SERVER["HTTP_USER_AGENT"];
$i=$_SERVER["REMOTE_ADDR"];
$r=$_SERVER["HTTP_REFERER"];

echo "<p>input.phpからPOSTされたデータ</p>\n";
echo "<dl>\n";
echo "<dt>学部</dt><dd>$g</dd>";
echo "<dt>番号</dt><dd>$n</dd>\n";
echo "<dt>長文</dt><dd>$c</dd>\n";
echo "<dt>暗証番号</dt><dd>$m</dd>\n";
echo "<dt>選択肢</dt><dd>$ch</dd>\n";
echo "<dt>チェックボックス</dt><dd>$che</dd>\n";
echo "<dt>隠しフィールド</dt><dd>$mode</dd>\n";
echo "</dl>";

echo "<p>以下はサーバ変数</p>\n";
echo "<dl>\n";
echo "<dt>ブラウザ</dt><dd>$b</dd>\n";
echo "<dt>IPアドレス</dt><dd>$i</dd>\n";
echo "<dt>リンク元</dt><dd>$r</dd>\n";
echo "</dl>\n";
?>
<hr/>
<h3>送信されたmessage body</h3>
<pre>
<?php echo(file_get_contents("php://input")); ?>
</pre>
  </body>
</html>

課題

  • 九九の表を作ろう
  • クエリパラメタで, 表のサイズ nxm を指定できるようにしよう.
  • issetを使ってクエリパラメタが与えられなかったときの処理を書こう.

参考

このサイトのコンテンツ

QRcode to hig3.net

https://hig3.net