輸入內容,並且在 textarea換行, 但save的時候卻沒有換行
<form action="" method="post">
<textarea rows="3" name="content"></textarea>
<button type="submit">Save</button>
</form>
這是一個十分平常的form,如果經常用來做input
是沒有問題的
比如在textarea
你輸入了
1
2
4
5
你點擊了save後,再讀出你會發現顯示
12 45
這是因為textarea 送到php的時候,會把換行之類的取換成 \n
或 \r
我們需要把他們取換成<br />
php 官方已經有相對應的內置函數: nl2br()
REF: https://www.php.net/manual/en/function.nl2br.php
$content = nl2br($_POST['content']);
echo $content;
如果是上面的例子,你就會見到
1<br/>
2<br />
<br>
4<br/>
5
這是個非常基礎/常見的問題,剛好工作上有新手成員遇上這個問題,一問之下才知道原來是因為現在所有的文字類輸入框,基本上都是用了打包的editor編輯器,比如 ckeditor ,所以很少會直接用textarea
但本次的project中剛好有個簡易的留言位置,如果用編輯框反而有些奇怪,不過大家要注意,如果單純用<textarea>
給用戶留言/送發內容去你的數據庫,必定要考慮到過濾安全性內容,比如:
- 防止他們保存 js 內容
- 防止sql注入 (現代的PHP建議一定要用到php-pdo)
這次 textarea換行 是個很新手的話題,如果大家有需要了解這些基礎的話題可留言給我們,日後如果遇到更多這類的情況,我們都可分享出來。
近期留言