こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

nl2br()の記入例

PHPを始めたばかりで行きづまってしまいました。
MySQLを利用したデータの出し入れなのですが、テキストエリア内の文章の改行についてです。

input.php(入力)⇒confirm.php(確認)⇒end.php(完了)
という流れなのですが、input.phpで入力した内容をconfirm.phpで確認すると文章の改行がされてなかったので色々検索した結果、nl2br()使うというところまでは解ったのですが、実際どのように書くのか解りません・・・。

例えばこのようなソースの場合、どのような記述をすればいいのでしょうか?
<html>
<head>
<title>薬屋さん</title>
</head>
<body>
<?php

$con = mysql_connect('aaa', 'bbb', 'ccc');
if (!$con) {
exit('データベースに接続できませんでした。');
}

$result = mysql_select_db('ddd', $con);
if (!$result) {
exit('データベースを選択できませんでした。');
}

$result = mysql_query('SELECT * FROM kusriya', $con);

echo "<dl>\n";
while ($data = mysql_fetch_array($result)) {
$id = $data['id'];
$shop = htmlspecialchars($data['shop']);
$address = htmlspecialchars($data['address']);
$phone = htmlspecialchars($data['phone']);
$comment = htmlspecialchars($data['comment']);
$navi = htmlspecialchars($data['navi']);
$con = mysql_close($con);
if (!$con) {
exit('データベースとの接続を閉じられませんでした。');
}
?>
<form method="post" action="test_confirm.php">
<table>
<tr> <th>ID</th><td><input type="text" name="id" /></td>
</tr>
<tr> <th>店名</th><td><input type="text" name="shop" /></td> </tr>
<tr> <th>住所</th><td><input type="text" name="address" /></td> </tr>
<tr> <th>電話</th><td><input type="text" name="phone" /></td> </tr>
<tr> <th>コメント</th><td><textarea name="comment" cols="80%" rows="5"></textarea></td> </tr>
<tr> <th>ルート</th><td><textarea name="navi" cols="80%" rows="5"></textarea></td> </tr>
</table>
<input type="submit" value="送信" />
<input type="reset" value="リセット" />
</form></body>
</html>

よろしくお願いします。

投稿日時 - 2008-08-27 21:31:52

QNo.4283615

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

改行が入るフォームはtextareaだけと考えると

$comment = nl2br(htmlspecialchars($_POST['comment']));

でよいのは?

nl2br(htmlspecialchars('<b>1行目</b>'."\n".'2行目'));



&lt;1行目&gt;<br />2行目

と返ってきますが、

htmlspecialchars(nl2br('<b>1行目</b>'."\n".'2行目'));

ですと

&lt;1行目&gt;&lt;br /&gt;2行目

でしょうか。

投稿日時 - 2008-08-27 22:15:36

あなたにオススメの質問