くろひょうのwebデザインのお勉強帳

フェリカテクニカルアカデミー web制作科の受講生です。授業の要点、復習でつまづいた点などを記録し、レベルアップに励みます。

クリエイターになるための、お勉強の記録帳

[PHP]入力フォーム④

入力フォーム2−3 送信後に表示される画面 

send.phpで送信後の内容を表示する画面を作成する。

①まずは、表示する器となるHTMLから。

【send.php

<body>
<h1>メール送信画面</h1>
<p>以下の内容で送信されました。</p>
<table>
<tr><th>お名前:</th><td></td></tr>
<tr><th>メールアドレス:</th><td></td></tr>
<tr><th>お問い合わせ内容:</th><td></td></tr>
</table>
<p><a href="index.php">入力画面へ戻る</a></p>
</body>

 

②send.phpのtdタグ内に受け取ったデータを表示する。

その為にはcheck.phpからsend.phpへデータを送る必要があるが、POSTメソッドではなくSESSIONメソッドで行う。
POSTメソッドではデータが取り出されると消えてしまうため
一方、SESSIONメソッドはサーバーに一時的にデータが保管されるので、何度でも取り出すことができる。

 

 〔参考〕※一時的なデータの保管場所(XAMPPの場合)
   C:¥xampp¥tmp¥ファイル名

 

というわけで、send.phpのtdタグ内に受け取ったデータを表示するには次の段階を踏む必要がある。

1)check.phpからSESSIONメソッドデータを送信するためのコードを書く

2)send.phpでSESSIONをスタートさせ、SESSIONでの変数を受け取る

 

1)check.phpからSESSIONメソッドデータを送信するためのコードを書く

session_start();
$SESSION['name'] = $_POST['name'];
$SESSION['email'] = $_POST['email'];
$SESSION['msg'] = $_POST['msg'];

 

2)send.phpでSESSIONをスタートさせ、SESSIONでの変数を受け取る

send.php head内

<?php
session_start();
$name = $_SESSION['name'];
$email = $_SESSION['email'];
$msg = $_SESSION['msg'];
?>

send.php body内

<table>
<tr><th>お名前:</th><td><?php echo htmlspecialchars($name,ENT_QUOTES, 'UTF-8');?> </td></tr>
<tr><th>メールアドレス:</th><td><?php echo htmlspecialchars($email,ENT_QUOTES, 'UTF-8');?></td></tr>
<tr><th>お問い合わせ内容:</th><td><?php echo htmlspecialchars($msg,ENT_QUOTES, 'UTF-8');?></td></tr>
</table>

ここまでにコードを ミスなく打てていれば、こうなります。

f:id:pleasure10501:20150610200520p:plain

f:id:pleasure10501:20150610200533p:plain

f:id:pleasure10501:20150610200536p:plain

 

ここまでのファイルの内容

【index.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>お問い合わせフォーム</title>
</head>

<body>

<h1>お問い合わせフォーム</h1>
<p>必要事項を入力して「確認する」ボタンをクリックしてください。</p>
<form action="check.php" method="post">
<table>
<tr><th><label for="name">お名前:</label></th><td><input type="text" name="name" id="name"></td></tr>
<tr><th><label for="email">メールアドレス:</label></th><td><input type="text" name="email" id="email"></td></tr>
<tr><th><label for="msg">お問い合わせ内容:</label></th><td><textarea name="msg" id="msg"></textarea></td></tr>
</table>
<p><input type="submit" value="確認する"></p>
</form>
</body>
</html>

 【check.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>入力確認画面</title>
<?php
if( !isset($_POST['name'])||!isset($_POST['email'])||!isset($_POST['msg']) ){
header('Location:./index.php');
exit;
}

$name = $_POST['name'];
$email = $_POST['email'];
$msg = $_POST['msg'];

session_start();
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['msg'] = $_POST['msg'];
?>
</head>
<body>
<h1>入力内容確認画面</h1>
<table>
<tr><th>お名前:</th><td><?php echo htmlspecialchars($name, ENT_QUOTES,'UTF-8'); ?></td></tr>
<tr><th>メールアドレス:</th><td><?php echo htmlspecialchars($email, ENT_QUOTES,'UTF-8'); ?></td></tr>
<tr><th>お問い合わせ内容:</th><td><?php echo htmlspecialchars($msg, ENT_QUOTES,'UTF-8'); ?></td></tr>
</table>
<p><a href="send.php">送信する</a></p>
</body>
</html>

  【send.php

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>メール送信画面</title>
<?php
session_start();
$name = $_SESSION['name'];
$email = $_SESSION['email'];
$msg = $_SESSION['msg'];
?>
</head>
<body>
<h1>メール送信画面</h1>
<p>以下の内容で送信しました。</p>
<table>
<tr><th>お名前:</th><td><?php echo htmlspecialchars($name,ENT_QUOTES, 'UTF-8');?> </td></tr>
<tr><th>メールアドレス:</th><td><?php echo htmlspecialchars($email,ENT_QUOTES, 'UTF-8');?></td></tr>
<tr><th>お問い合わせ内容:</th><td><?php echo htmlspecialchars($msg,ENT_QUOTES, 'UTF-8');?></td></tr>
</table>
<p><a href="index.php">入力画面へ戻る</a></p>
</body>
</html>