メールフォーム
formタグについて
<form action="get.php" method="get">
<form>〜</form> | 開始タグ.終了タグ | |
action="○○" | データの送信先のURIを指定 | |
method="○○" | postかgetを指定(省略した場合はgetになっている) |
method="get"の処理
- 「input.php」の作成
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>フォームに入力した内容を取得する</title> </head> <body> <h1>フォームに入力した内容を取得する</h1> <form action="get.php" method="get"> <dl> <dt><label for="name">name :</label></dt> <dd><input type="text" name="name" id="name" size="20" maxlength="10" value=""></dd> <dt><label for="mail">mail:</label></dt> <dd><input type="text" name="mail" id="mail" size="50" maxlength="50" value=""></dd> </dl> <input type="submit" name="submit" value="送信"> </form> </body> </html>
- 「get.php」の作成
<?php $name = htmlspecialchars( $_GET[ 'name' ], ENT_QUOTES, 'UTF-8' ); $mail = htmlspecialchars( $_GET[ 'mail' ], ENT_QUOTES, 'UTF-8' ); print '名前は、' . $name .' です<br>'; print 'メールアドレスは、' . $mail . 'です<br>';
method="post"の処理
- 「input.php」の作成
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>フォームに入力した内容を取得する</title> </head> <body> <h1>フォームに入力した内容を取得する</h1> <form action="output3.php" method="post"> <dl> <dt><label for="name">お名前:</label></dt> <dd><input type="text" name="name" id="name" size="20" maxlength="10" value=""></dd> <dt><label for="mail">メールアドレス:</label></dt> <dd><input type="text" name="mail" id="mail" size="50" maxlength="50" value=""></dd> <dt>性別:</dt> <dd> <input id="gender_male" type="radio" name="gender" value="男性" checked><label for="gender_male">男性</label> <input id="gender_female" type="radio" name="gender" value="女性"><label for="gender_female">女性</label> <input id="gender_other" type="radio" name="gender" value="その他"><label for="gender_other">その他</label> </dd> <dt><label for="message">お問い合わせ内容:</label></dt> <dd><textarea name="message" id="message" cols="50" rows="4" value=""></textarea></dd> </dl> <input type="submit" value="送信する"> </form> </body>
- 「output.php」の作成
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>変数を使って、同じプログラムが重なるのを防ぐ</title> </head> <body> <h1>変数を使って、同じプログラムが重なるのを防ぐ</h1> <?php $name = htmlspecialchars( $_POST[ 'name' ], ENT_QUOTES); $mail = htmlspecialchars( $_POST[ 'mail' ], ENT_QUOTES); $gender = htmlspecialchars( $_POST[ 'gender' ], ENT_QUOTES); $message = htmlspecialchars( $_POST[ 'message' ], ENT_QUOTES); ?> <dl> <dt> お名前:</dt> <dd><?php print $name; ?></dd> <dt> メールアドレス:</dt> <dd><?php print $mail; ?></dd> <dt> 性別:</dt> <dd><?php print $gender; ?></dd> <dt> メッセージ:</dt> <dd><?php print $message; ?></dd> </dl> </body> </html>
htmlspecialchars関数
文字の中には HTML において特殊な意味を持つものがある。
それらを単純に値として表示するために、HTML の表現形式に変換する関数。
htmlspecialchars関数は、これらの変換を行った結果の文字列を返す。
htmlspecialchars('文字列',エスケープの種類,'文字コード')
メールフォームを作成
- 「input.php」
<!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>入力フォームあれこれ</title> <link rel="stylesheet" href="style.css"> </head> <body> <h1>入力フォームあれこれ</h1> <form name="input_form" action="output4.php" method="post"> <table> <tr> <th>氏名</th> <td><input type="text" name="name" size="40" maxlength="20"></td> </tr> <tr> <th>好きな色</th> <td> <select name="color"> <option value="">以下の中から選択してください</option> <option value="赤">赤</option> <option value="青">青</option> <option value="黄色">黄色</option> </select> </td> </tr> <tr> <th>性別</th> <td> <input type="radio" name="gender" value="男性" checked>男性<br> <input type="radio" name="gender" value="女性">女性 </td> </tr> <th>趣味</th> <td> <input type="checkbox" name="hobbies[]" value="ゴルフ">ゴルフ<br> <input type="checkbox" name="hobbies[]" value="読書">読書<br> <input type="checkbox" name="hobbies[]" value="旅行">旅行<br> </td> </tr> <tr> <th>自己紹介</th> <td> <textarea name="question" rows="3" cols="40"></textarea> </td> </tr> </table> <input type="submit" value="submit" class="btn"> <input type="reset" value="reset" class="btn"> </form> </body> </html>
- 「style.css」
@charset "UTF-8"; /* CSS Document */ html,body,div,ul,li,table,tr,th,td,form,p { margin:0; padding:0; } body { background:#754090; font-size:16px; } form,table { width:700px; height:auto; margin:0 auto; background:#F4F3F3; padding:5%; } table,tr,td { border-collapse:collapse; border-spacing: 0; border:1px #A09F9F dotted; } th { width:300px; } th,td { padding:5%; } h1 { color:#C5C3B9; font-size:130%; margin-left:50px; } .btn { margin-top:5px; color:#fff; background:#0A0909; border:1px solid #000; padding:5px; }
- 「output.php」
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>入力フォームあれこれ</title> </head> <body> <h1>入力フォームあれこれ</h1> <p>ご協力ありがとうございました。</p> <table> <tr> <th>氏名</th> <td><?php print htmlspecialchars( $_POST[ 'name' ], ENT_QUOTES ); ?></td> </tr> <tr> <th>好きな色</th> <td><?php print htmlspecialchars( $_POST[ 'color' ], ENT_QUOTES ); ?></td> </tr> <tr> <th>性別</th> <td><?php print htmlspecialchars( $_POST['gender'],ENT_QUOTES); ?></td> </tr> <tr> <th>趣味</th> <td><?php print htmlspecialchars( implode( '、',$_POST[ 'hobbies' ]) , ENT_QUOTES ); ?></td> </tr> <tr> <th>自己紹介</th> <td><?php print nl2br( htmlspecialchars( $_POST[ 'question' ], ENT_QUOTES ) ); ?></td> </tr> </table> </body> </html>