書き込み処理の作成(2) |
|
書き込んだ後に、一度内容をプレビューするページを作ります。 |
他のページに遷移するので、書き込み内容をどこかに一時保存して表示しなければいけませんね。 |
そのためにはまず前回のコードを修正します。 |
|
bbs.php |
<?php
//投稿ボタンが押されたら
if (isset($_POST["register"])){
session_start();
//エラーメッセージを格納する配列を作成
$error_message = array();
//各データがセットされていたら各変数にPOSTのデータを格納
if ($_POST["name"] !==
""){
$_SESSION["name"]
= htmlspecialchars($_POST["name"],ENT_QUOTES);
//各データがなかったらエラーメッセージを配列に格納
}else{
$error_message[] = "名前を入力してください。<br>";
}
if ($_POST["title"] !==
""){
$_SESSION["title"]
= htmlspecialchars($_POST["title"],ENT_QUOTES);
}else{
$error_message[] = "タイトルを入力してください。<br>";
}
if ($_POST["body"] !==
""){
$_SESSION["body"]
= htmlspecialchars($_POST["body"],ENT_QUOTES);
}else{
$error_message[] = "本文を入力してください。<br>";
}
//以下省略…
|
赤文字の所を修正します。 |
|
・セッションを利用しよう
|
セッションとはページ間で変数の内容を維持するための仕組みです。 |
今回は、書き込み内容を次のページへ表示するために、クッキー(Cookie)という仕組みを使い一時保存します |
す。なお、セッションに保存されたデータはブラウザを閉じると終了します。 |
・session_start関数 |
セッションを利用するにはsession_start関数を記述して、セッションデータを初期化する必要があります。 |
次にセッションのデータを保存します。 |
$_SESSIONという特殊な変数を使用し、そこへ連想配列として格納していきます。上の例だと、 |
$_SESSION["name"] = htmlspecialchars($_POST["name"],ENT_QUOTES); |
と、$_SESSION["name"] に書き込みデータの名前を格納しています。 |
|
・セッションで保存したデータの呼び出し |
次に、セッションで保存したデータを呼び出して表示する書き込み確認画面を作りましょう。 |
|
conf.php
|
<?php
session_start();
//セッションのデータを表示用変数に格納
$view_name = $_SESSION ["name"];
$view_title = $_SESSION["title"];
$view_body = $_SESSION["body"];
//ここに後にファイルへの書き込み処理を追加
print<<<EOF
<html>
<title>掲示板投稿確認</title>
<body>
この内容で書き込みます。<br><br>
名前:{$view_name}<br>
タイトル:{$view_title}<br>
内容:{$view_body}<br>
<form action="conf.php" method="post">
<input type="submit" name="set" value="確定"> <input type="button" value="戻る" onclick="location.href='bbs.php'">
</form>
</body>
</html>
EOF;
?> |
※onclick〜はjavascriptなので今回は説明を割愛します。 |
試しに、bbs.phpのフォームに書き込んでみてください。書き込んだ内容が表示されます。 |
|
まず、セッションをsession_start関数で開始し、各表示用変数にセッションのデータを格納します。
|
次にHTMLで内容を表示します。この時、print<<<EOF
を使います。
|
print<<<EOF
とは「ヒアドキュメント」といい、プログラム内にまとまった記述を表示させるために使用します。
|
print<<<任意の文字列
//表示したい文字列
任意の文字列;
|
と記述します。
|
これでHTML内に変数を表示することができます。
|
HTMLに変数を組み込んで表示する場合は
|
名前:{$view_name}<br>
|
このように{ } で囲います。
|
最後に、確定ボタンとフォームへの遷移ボタンを設置して表示部分は完成です。
|
|
|
|