投稿した内容を画面表示

広告

次はフォームと組み合わせて簡単な掲示板を作ってみます。まずは投稿された内容を画面に表示するところまで行ってみます。

まず投稿用のフォームを作成します。フォームは投稿者と内容の2つの項目にします。下記のような感じです。





次に投稿された内容を表示させてみます。今回はフォームが記述しているHTMLファイル自身にPOSTを使って送ってみます。

keijiban1.php

<html>
<head><title>PHP TEST</title></head>
<body>

<p>掲示板</p>

<form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?>">
<input type="text" name="personal_name"><br><br>
<textarea name="contents" rows="8" cols="40">
</textarea><br><br>
<input type="submit" name="btn1" value="投稿する">
</form>

<?php

$personal_name = $_POST['personal_name'];
$contents = $_POST['contents'];

print('<p>投稿者:'.$personal_name.'</p>');
print('<p>内容:</p>');
print('<p>'.$contents.'</p>');

?>
</body>
</html>

POSTの送信先として「<?php print($_SERVER['PHP_SELF']) ?>」を使っています。「$_SERVER['PHP_SELF']」はこの構文が記述されているHTML自身を指しており、print関数で出力することによりPOSTの送信先として自分自身を表すHTMLファイルの位置を指定しています。

注意点として、この部分は<form></form>の中で使われているのですが、<form></form>自体はPHPのプログラムの中では無いので、この文を記述する場合には「<?php」と「?>」で囲ってあげる必要があることを忘れないで下さい。

では実際にWWWサーバに設置して試してみます。

掲示板

上記のように表示されますので何か適当に入力してから「投稿」ボタンをクリックして下さい。

掲示板

掲示板

画面には表示されていますけれど、テキストエリアに入力された内容が改行されずに出力されてしまっています。これはHTML上では単に改行しても改行とはならずに<br>などを記述しなければ改行されないためです。

その為、テキストエリアに入力された値を取り出した後で、「nl2br」関数を使って、文字列中に含まれる改行文字の前に<br />を挿入します。

$contents = $_POST['contents'];
$contents = nl2br($contents);

※「nl2br」関数については『改行文字の前にHTMLの改行文字を挿入(nl2br)』を参照して下さい。

以上の点を修正したものが下記になります。

keijiban2.php

<html>
<head><title>PHP TEST</title></head>
<body>

<p>掲示板</p>

<form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?>">
<input type="text" name="personal_name"><br><br>
<textarea name="contents" rows="8" cols="40">
</textarea><br><br>
<input type="submit" name="btn1" value="投稿する">
</form>

<?php

$personal_name = $_POST['personal_name'];
$contents = $_POST['contents'];
$contents = nl2br($contents);

print('<p>投稿者:'.$personal_name.'</p>');
print('<p>内容:</p>');
print('<p>'.$contents.'</p>');

?>
</body>
</html>

WWWサーバに設置してから、先ほどと同じように試してみます。

掲示板

掲示板

今度は無事改行が行われて表示されています。

では次のページで今度は投稿された内容をファイルに書き込むようにしてみます。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)