HOME   入り口   MENU


No6.変数になっちゃうのだ ---- FORMからの値




HTML内のFORMで入力されてPOST(GET)されたデータは
FORMで付けた名前の変数で送信先に渡されます。
これはすごく便利!
受け取ったデータを解析する必要はなく
PHPの内部処理がやってくれるのです(ありがとうPHP(^_^))
どうな風かというと
<FORM ACTION="php20030114s.php" METHOD="POST">
竜のヒトコト: <INPUT TYPE="text" NAME="hitokoto" VALUE="">
<INPUT TYPE="submit" NAME="submit" VALUE="押す">
</FORM>
という入力フォームをHTMLに書くと

竜のヒトコト:

こんなフォームが表示されます。
例えばここに「にゃん」と入力すると
ACTIONで指定された"php20030114s.php"では
$hitokotoに「にゃん」と代入されています。
じゃあ、ボタンを押してみて下さいね。
絵の下のオレンジ色の部分に
入れてくれたヒトコトが渡りましたか?
(注)下のほうにある入力フォームはサンプル用

php20030114s.phpでヒトコトを出すところは
<?php
$hitokoto = htmlspecialchars($hitokoto, ENT_QUOTES);
echo $hitokoto;
?>
こんなふうになっています。
(htmlspecialcharsの行を外しても出力されます。
これについてはオマケを見てね。)

サンプル: こう書くと   ==>    こうなる!

テキストボックス以外のフォームはこんな感じです。
オレンジ色の部分が渡した内容を表示しているところです。
サンプルでは自分自身をACTION先にしています
$PHP_SELFはPHPで使える予約語定数です。(NO5.定数のところを見てね。)
***上の例の「竜のひとこと」のACTION先でもありますので、
$hitokotoにはどちらからボタンを押されても内容が入ります。



(オマケ)
$hitokoto = htmlspecialchars($hitokoto, ENT_QUOTES);
のhtmlspecialcharsは特定のHTMLタグを区別してくれます。(<や>)
セキュリティなどの問題から入力内容にタグを使われたくないときに有効なので
FORMでのテキストボックスにはかけるようにしています。(^_^)
もっと詳しく知りたい方は
PHP日本語マニュアル へ。


(注意)PHP4.2.0以降、デフォルトではセキュリティの関係で$変数名カタチで
FORMからスクリプトに渡された変数を獲得できなくなりまいした。
お使いのサーバで動作を確認して駄目だった場合、
$_GET['変数名'] ・ $_POST['変数名']
で取得してくださいね。(^_^)











  HOME