基本的なフォームの作り方フォームを作るときの基本は(1)入力画面(2)確認画面(3)受付完了画面(1)から(2)に行くときに入力エラーなどがあれば表示させる。入力ミスなどのチェックをしてエラーであったとすると(2)で『エラーです』と表示させて、ユーザーに(1)に戻ってもらう必要がある。このようにするより1つのファイルの中ですべてを行うほうがユーザーにも親切だと思います。ここで名前を登録するだけのフォームを作ってみます。HTMLは次のようになります。/></form></body></html>ページ(3)<html><body>ありがとうございました。</body></html>PHPでは送信元のファイルと送信先のファイルが同じ場合は(自分自身のアドレスを表す)<?=$_SERVER['PHP_SELF']?>です。そこで【次のページ】の部分は<?=$_SERVER['PHP_SELF']?>となります。/>というのは画面上には表示されないけど、フォームとしては送信したいときに使います。フォーム送信ではSUBMITボタンにもNAME属性を持たせることができます。これによってどのボタンが押されたのかわかります。送られる値はボタンの表示文字です。/>とすると$_POST["submit1"]に送られる値は『送信』となります。押されていないボタンの値は送信されません。BUTTONタグでは、IEのバグがあるので1つのFORMタグ内には1つのBUTTONタグしか使えません。TYPE=SUBMITを使いましょう。/>ではなくて<button></button>のことです。これをまとめると次のようになります。<?//どのボタンが押されたのかを判別します。"";//フォームの入力内容を受け取ります。"";//ユーザーが入力したものを画面に表示させるときは必ずHTMLタグをエスケープします。htmlspecialchars($onamae);//ページの共通部分はまとめます。?><html><body><?if($submit2!=""){?>ありがとうございました。/></form><?}?></body></html>これではなにも入力しないでも送信が完了してしまいます。(2)から(3)の間にエラーがあった場合でも『ありがとうございました。』と表示されるのはあまりよくない。そこでメッセージをまとめてみます。MacIEなどではページ(3)でリロードして、空POSTを送ることが出来ます。ページ(2)とページ(3)の2重チェックをしましょう。"";//submit1の時だけではなくsubmit2のときもチェックをします。//悪意のあるユーザーは確認画面のHTMLから自作でページを作り//submit2にどんなデータでも送ることができます。$submit2!=""){if($onamae==""){//エラー表示を$msg変数に追記します。$msg.="名前を入力してください。";//エラーであれば初期画面に戻ります。$submit1="";$submit2="";}//いくつか入力がある場合はここでチェックをします。}if($submit2!=""){//ここでデータベースに登録したり、メールを送ったりなどの//フォーム目的の処理をします。//OKであればサンクス表示をを$msg変数に追記します。$msg.="ありがとうございました。/></form><?}?></body></html>確認画面で間違っていることに気づいたユーザーのために『戻る』ボタンを設置します。JavaScriptでのチェックを含めてみます。JavaScriptの使えないユーザーもいるのでスクリプト内でのチェックは必須です。回線の遅いユーザーは入力のチェックのたびにサーバーと通信しなければいけなくなりますし、サーバー負荷などを考えてもユーザー側(クライアント側)でもチェックをするほうがいいです。JavaScriptを使用するときは絶対に次のものは使ってはいけません。/>これではJavaScriptが使えないユーザーは次へ行けません。onSubmit="javascript:〜">FORMタグ内にonSubmitで設置します。$submit2!=""){if($onamae==""){$msg.="名前を入力してください。";$submit1="";$submit2="";}}if($submit2!=""){$msg.="ありがとうございました。{if(document.form.onamae.value==""){alert("名前を入力してください。昭和100年問題(2025年問題)平成100年問題(2088年問題)このページはリンクフリーです。「パンスト」は保土ヶ谷ナイロンの。