[7]フォームデータの受渡し
【定義済み変数 $POST・$_GETなど】 フォームなどからHTTPプロコトルで送信されるデータは 「 定義済み変数 」に代入されます。 HTMLのフォームから送信される「method="POST"」の場合は$_POST['name'] で受け取り、「method="GET"」の場合は$_GET['name']で受け取ります。 では実際に送受信をしてみましょう。 このプログラムはソースをコピーしたりせずに、ご自分でタイプしてみてください。 また、ここ以降はそれぞれの関数についての個別解説はしませんので、 出てくる関数についての詳細はマニュアルを参考にしてください。
<?php
/////////////////////////////////////////// //PHPプログラムの動作テスト //POST・GETの実験 /////////////////////////////////////////// //このスクリプトの名前 $myscript=$_SERVER['SCRIPT_NAME']; echo (" <html> <body> "); //POSTフォーム echo (" <form method=\"POST\" action=\"$myscript\"> <input type=\"text\" name=\"post\"> <input type=\"submit\" value=\" POSTしてみる \"> </form> <hr> "); //GETフォーム echo (" <form method=\"GET\" action=\"$myscript\"> <input type=\"text\" name=\"get\"> <input type=\"submit\" value=\" GETしてみる \"> </form> <hr><br> "); if(isset($_POST['post'])){ print $_POST['post']."というデータがPOSTされました!<br>"; } if(isset($_GET['get'])){ print $_GET['get']."というデータがGETされました!<br>"; } echo (" </body> </html> "); ?> フォームのGET・POSTの入力枠に入力されたデータが表示されると思います。 POSTは主にデータの大きいものに、GETは主にデータの小さいものに使われます。 また、POSTの場合は<form method="POST" action="$myscript">でしか 送信できませんが、GETの場合は<a href="$myscript?name=name"> のように、送信するスクリプトに"?"を付けてでも送信できます。 GET送信の<form>を使わないデータの送信方法
<?php
/////////////////////////////////////////// //PHPプログラムの動作テスト //GET送信の<form>を使わないデータの送信方法 /////////////////////////////////////////// //このスクリプトの名前 $script_php=$_SERVER['SCRIPT_NAME']; //あなたのリモートIP $ip=$_SERVER['REMOTE_ADDR']; echo (" <html> <body> "); echo (" <a href=\"$script_php?ip=$ip\"> あなたのリモートIPをしらべてGETする! </a><hr> "); if(isset($_GET['ip'])){ print "あなたのリモートIPは【".$_GET['ip']."】です!<br>"; } echo (" </body> </html> "); ?> では、じゃんじゃんGETで送信してみましょう!送信ついでにメールも送信しちゃいましょう!
<?php
/////////////////////////////////////////// //PHPプログラムの動作テスト //GET送信の<form>を使わないデータの送信方法2 //ついでにメールも送信しちゃう /////////////////////////////////////////// //このスクリプトの名前 $script_php=$_SERVER['SCRIPT_NAME']; //ページタイトル $title="ご注文は何にしますか?"; //メールを受け取るアドレス $mail="yourmail@yourdomain"; //送信メニュー $menu1="カレーライス"; $menu2="ハンバーグライス"; $menu3="焼肉定食"; $menu4="マーボ丼"; $menu5="天津丼"; $menu6="ピラフ"; $menu7="おにぎり"; echo (" <html> <head> <title>$title</title> <meta http-equiv=\"content-type\" content=\"text/html; charset=Shift_JIS\"> </head> <body> "); echo (" $title<hr> <ol> <li><a href=\"$script_php?name=$menu1\"> $menu1 </a> <li><a href=\"$script_php?name=$menu2\"> $menu2 </a> <li><a href=\"$script_php?name=$menu3\"> $menu3 </a> <li><a href=\"$script_php?name=$menu4\"> $menu4 </a> <li><a href=\"$script_php?name=$menu5\"> $menu5 </a> <li><a href=\"$script_php?name=$menu6\"> $menu6 </a> <li><a href=\"$script_php?name=$menu7\"> $menu7 </a> </ol> "); if(isset($_GET['name'])){ print "ご注文は【".$_GET['name']."】ですね!<br>"; //メールの言語を日本語に設定 mb_language("Ja"); //メールのエンコードをSJISに設定 mb_internal_encoding("SJIS"); //メールの表題 $subject="注文メール"; //メールの内容 $main="ご注文は【".$_GET['name']."】です"; //メールの送信元 $frommail="From:".mb_encode_mimeheader("$title")."<".$mail.">"; //メールを送信 mb_send_mail($mail,$subject,$main,$frommail); } echo (" </body> </html> "); ?> この項はこれで終わりです。簡単でしたね。 |
TOPへ |