WEBデザインの学習 | ナイアルラトホテップ

このブログは池袋にあるフェリカテクニカルアカデミーで学んだ学習過程を記録するためのものです。HTML+CSS及びJavaScript、jQueryなど。

sessionとヒアドキュメントについて

先週までの続きでメールフォームを作成した。

session

check.php

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

ヒアドキュメント

send.php

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

send.php

<?php
$body=<<<EOF
{$name}さんからメールが送信されました。
メールアドレスは{$email}です。
内容は、以下の通りです。
{$message}
EOF;
?>

これで概ね基本的な設定は出来たが、このままでは細かいところがいろいろいけない。
check.phpでチェックしたとき修正したい場合はどうするか?ボタンを書き足す

<p><a href="index.php">フォームに戻る</a></p>
<p><a href="send.php">メールを送信する</a></p>

index.php内に書き足す

ただ、これでフォームに戻った場合入力内容が消えてしまう。

index.php内上部に書き足し

<?php
session_start();
$name=$_SESSION['name'];
$email=$_SESSION['email'];
$message=$_SESSION['message'];
?>
<table border="1">
<tr><th><label for="name">お名前</label></th>
<td><input style="text" name="name" id="name" value="<?php echo htmlspecialchars($name,ENT_QUOTES,'utf-8'); ?>"></td></tr>
<tr><th><label for="email">メールアドレス</label></th>
<td><input type="text" name="email" id="email" value="<?php echo htmlspecialchars($email,ENT_QUOTES,'utf-8'); ?>"></td></tr>
<tr><th><label for="message" >メッセージ</label></th>
<td><textarea name="message" id="message"><?php echo htmlspecialchars($message,ENT_QUOTES,'utf-8'); ?></textarea></td></tr>
</table>
<input type="submit" value="確認する">
</form>

※注意
textareaはvalueが使えない!
なので
間にコードを書く。