★[前のページへ戻る]ボタンをつくる

私たちはカジノサイトを独自にレビューしています。当社のリンクを通じてサインアップすると、追加料金なしで当社に手数料が発生する場合があります。

[前のページへ戻る]ボタンをつくる

003

広告



前回は、未入力チェック機能を作成しました。
今回は、未入力の項目があった場合に[前のページへ戻る]ボタンを表示して、ユーザーに再入力を促す仕組みを作成していきましょう。

テキストエディタでconfirm.phpを開いて下記の内容を追加してください。

サンプルソース:confirm.php
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>入力内容の確認|メール送信フォーム</title> </head> <body> <?php /******************************* データの受け取り *******************************/ $namae = $_POST["namae"]; //お名前 $mailaddress = $_POST["mailaddress"]; //メールアドレス $naiyou = $_POST["naiyou"]; //お問合せ内容 //危険な文字列を入力された場合にそのまま利用しない対策 $namae = htmlspecialchars($namae, ENT_QUOTES); $mailaddress = htmlspecialchars($mailaddress, ENT_QUOTES); $naiyou = htmlspecialchars($naiyou, ENT_QUOTES); /******************************* 未入力チェック *******************************/ $errmsg = ''; //エラーメッセージを空にしておく if ($namae == '') { $errmsg = $errmsg.'<p>お名前が入力されていません。</p>'; } if ($mailaddress == '') { $errmsg = $errmsg.'<p>メールアドレスが入力されていません。</p>'; } if ($naiyou == '') { $errmsg = $errmsg.'<p>お問合せ内容が入力されていません。</p>'; } /******************************* 入力内容の確認 *******************************/ if ($errmsg != '') { //エラーメッセージが空ではない場合には、エラーメッセージを表示する echo $errmsg; //[前のページへ戻る]ボタンを表示する echo '<form method="post" action="index.php">'; echo '<input type="hidden" name="namae" value="'.$namae.'">'; echo '<input type="hidden" name="mailaddress" value="'.$mailaddress.'">'; echo '<input type="hidden" name="naiyou" value="'.$naiyou.'">'; echo '<input type="submit" name="backbtn" value="前のページへ戻る">'; echo '</form>'; } else { //エラーメッセージが空の場合には、入力された内容を画面表示する echo '<h3>入力内容を確認します</h3>'; echo '<dl>'; echo '<dt>【お名前】</dt><dd>'.$namae.'</dd>'; echo '<dt>【メールアドレス】</dt><dd>'.$mailaddress.'</dd>'; echo '<dt>【お問合せ内容】</dt><dd>'.nl2br($naiyou).'</dd>'; echo '</dl>'; //[上記内容で送信する]ボタンを表示する echo '<form method="post" action="mailpost.php">'; echo '<input type="hidden" name="namae" value="'.$namae.'">'; echo '<input type="hidden" name="mailaddress" value="'.$mailaddress.'">'; echo '<input type="hidden" name="naiyou" value="'.$naiyou.'">'; echo '<input type="submit" name="okbtn" value="上記内容で送信する">'; echo '</form>'; } ?> </body> </html>

入力が完了したら、confirm.phpを上書き保存してください。

この時点で、一度ブラウザで表示確認しましょう。
フォーム入力欄が一部未入力であった場合には、下記のように[前のページへ戻る]ボタンが表示されるようになります。

そして、フォーム入力欄がすべて入力された場合には、下記のように[上記内容で送信する]ボタンが表示されるようになれば成功です。

記述したソース内容を確認しよう

受け取ったデータを隠しデータとして次のページへ送る

いま追加したソースでは、[前のページへ戻る]ボタンと[上記内容で送信する]ボタンを作成しています。
送信先ページは異なりますが、どちらのボタンも同様の機能を果たします。

[前のページへ戻る]ボタンを作成する部分のソースに注目してみましょう。

サンプルソース:confirm.phpの抜粋
//[前のページへ戻る]ボタンを表示する echo '<form method="post" action="index.php">'; echo '<input type="hidden" name="namae" value="'.$namae.'">'; echo '<input type="hidden" name="mailaddress" value="'.$mailaddress.'">'; echo '<input type="hidden" name="naiyou" value="'.$naiyou.'">'; echo '<input type="submit" name="backbtn" value="前のページへ戻る">'; echo '</form>';

送信ボタンは、HTMLのform要素で作成しています。
<form method=”post” action=”index.php”> ~ </form> でひとつのボタンです。
送信するデータの内容はinput要素で指定していますが、
input要素のtype属性に「hidden」を指定するとブラウザの画面に表示されない隠しデータとして送信することができます。

隠しデータの内容は、
<input type=”hidden” name=”namae” value=”‘.$namae.'”>
などの記述で指定しています。
上記のソースで作成した[前のページへ戻る]ボタンを押すと、$namae・$mailaddress・$naiyouの変数に格納されているデータが、
form要素のaction属性で指定された「index.php」へ隠しデータとして送信されます。

隠しデータは暗号化ではない

input要素のtype=”hidden”で送信する隠しデータは、暗号化ではありません。
ブラウザの画面上には表示されないというだけであって、HTMLソースを表示すればユーザー側でも内容を確認できます。

【ブラウザ上の表示】

【HTMLソースの内容】

隠しデータの送信がHTMLソースで実現しているということは、ユーザー側でデータ内容を閲覧したり改変することもできるということです。
つまり、隠しデータにしたからといってユーザーに見られないというわけでないし、
隠しデータとして送られてきたからといってその内容が改変されていないとも限りません。

必要以上に恐れることもありませんが、隠しデータを利用する際には若干の注意が必要であることを知っておきましょう。
例えば、パスワードのような秘匿すべきデータを、input要素の隠しデータとしてページ間で受け渡すような仕様は避けるべきでしょう。

<前へ 目次へ 次へ>

広告



山田 太郎
テック・リード
山田太郎は、ウェブ開発やグラフィックスプログラミングに10年以上の経験を持つテクノロジーの専門家です。特にHTML5 CanvasやJavaScript、インタラクティブメディアに精通しており、動的なユーザーインターフェースや最先端のウェブアプリケーションの開発に携わってきました。複雑な図形描画や画像操作、リアルタイムグラフィックスに関する知識が豊富で、ウェブ技術の限界を追求する開発者たちにとって頼りになる存在です。知識の共有に情熱を持ち、初心者からプロフェッショナルまで幅広く支援するため、技術フォーラムやブログにも積極的に貢献しています。

ギャンブルガイド もっと見る

カジノファインダー

どのカジノが自分に最適か分からないですか?

サインアップは必要なく、1 分以内に最適なブックメーカーを簡単に見つけることができます。
カジノを探す
Back
質問
Select one of the following options
{"is_any_tile":true}

どのカジノが自分に最適か分からないですか?

Back
Restart
やったー!
これはあなたの選択に基づいた最高のカジノです...
56 users signed up
もっと表示する