テキストエリアの改行について
PHP初心者です。
今、PHPで掲示板を作成しています。
下記のように
テキストエリアで複数行文字を打っても、
1行で表示されてしまいます。
-----入力-----
<textarea>
Test
Test
</textarea>
-----出力-----
Test Test
--------------
どうしたら、改行が反映されるのでしょうか?
プログラム貼り付けておきますね!
--------------------------------
<form method="post" action="<? echo $PHP_SELF; ?>">
名前<br><input name="name" type="text" size="10"><br>
コメント<br><textarea name="mes" rows="10" cols="50"></textarea><br>
<input type="submit" value="送信"><input name="del" type="submit" value="RESET"><br>
<?php
extract($_POST);
/* 設定 */
$ip = getenv("REMOTE_ADDR"); //IPアドレスを取得
$logfile = "bbs.log"; //ログファイル名
$viewmax = 10; //表示行数
$logmax = 10; //保存最大行数
$n_fp = fopen("num.log","r+");
$num = fgets($n_fp, 32); //現在のNo.を取得
/* リセット処理 */
if($del){
$bbs = fopen("bbs.log","w"); //BBSログを消去
fclose($bbs);
fclose($n_fp); //ファイルを閉じる
$nc_fp = fopen("num.log","w"); //num初期化
$num = 1;
fputs($nc_fp, $num); //書き込み
fclose($nc_fp); //ファイルを閉じる
}
/* 書き込み処理 */
if($name && $mes){
/* HTMLタグをエントリに変換 */
$mes = htmlspecialchars ($mes);
$name = htmlspecialchars ($name);
/* Shift-JISの場合バッククォートを除去 */
if(get_magic_quotes_gpc()){
$mes = stripslashes($mes);
$name = stripslashes($name);
}
/* \nを<br>に変換する */
if($mes == "\n"){
$mes = str_replace("\n", "<br>", $mes);
}
/* 日付けのフォーマット */
$now = gmdate("d(D) H:i ",time()+60*60*9);
/* ログのフォーマット */
$dat = "$name<br>└ $mes <font size=\"1\">[$now]</font><br>($ip)<br>\n";
/* ログに書き込む */
$lines = file($logfile); //いままでのログを配列に読み込む
$fp = fopen($logfile, "w"); //ログをオープン(空になる)
fputs($fp,"[$num] $dat"); //データを書き込む(先頭に)
for($i = 0; $i < $logmax-1; $i++) //いままでの分を追記
fputs($fp, "$lines[$i]"); //(配列0-98→現ログ1-99行目)
fclose ($fp);
$num++;
fseek($n_fp, 0); // ポインタを先頭に戻す
fputs($n_fp, $num); // 書き込み
fclose($n_fp); // ファイルを閉じる
}
/* 表示処理 */
$lines = file($logfile);
for($i = 0; $i < $viewmax; $i++)
echo $lines[$i];
?>
</form>
補足
すみません。単にプログラムミスでした。