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が使えない!
なので
間にコードを書く。