1

私はこのコードを持っています

       require_once("../Packages/Connection.php");
       $create_object = mysql_query("SELECT * FROM `Articles` WHERE `group` = 'News' ORDER BY `id` DESC;");

      while($row=mysql_fetch_array($create_object))
        {
        $time = $row[time];
        $date = date("H:i M jS o ",$time);
        print "<form action='Update.php' method='post' float:left;>

                <input hidden='hidden' name='articleId' value='$row[id]'>

                <input hidden='hidden' name='method' value='update'>

                <textarea name='articleText' rows='3' cols='25'>$row[text]</textarea>
                <br />  
                <input type='submit' value=' Update '>
            </form><br />
            <form action='Update.php' method='post'>

                <input hidden='hidden' name='articleId' value='$row[id]'>

                <input hidden='hidden' name='method' value='delete'>

                <input type='submit' value=' Delete ' onClick='return confirmDelete()'float:left;'>

            </form>     
         <hr><br />";
         }  

そして、それは問題なくテキストを出力し、新しい行をに変更しますが、<br />更新するたびに新しい行を追加するので、最初に次のようなテキストを入力します:

Hi
My name is Jesper

it outputs Hi <br />
My name is Jesper to the database

and second time if i want to change something, like the name..
Hi <br /><br />
My name is JapSeyz

これを1つだけに制限するには<br />'s..どうすればよいですか?

4

2 に答える 2

2

これはnl2br、テキストをデータベースに保存する前に使用しているためです。そこに行って見...

正しい方法は、nl2br表示するときだけデータ (例: ) をエスケープすることです。データベース内のデータは、特定の目的でのエスケープに関する変更がなく、明確である必要があります。

ただし、<textarea>要素では、そこに要素を挿入する必要なく、改行が既に処理<br>されています。

そのためnl2br、データを保存する場合には使用せず、(フォーム要素ではなく) ページに印刷する場合にのみ使用してください。

于 2012-10-14T15:45:18.157 に答える