作者NOXI (EZway)
看板PHP
標題[請益] textarea無法存進mysql的text??
時間Sat Oct 29 18:00:43 2011
我用PHP5 Mysql5.5
1.我在Mysql建立一個table,內涵一個column格式是text
2.我用a.php post textarea的資料到b.php (已經連結到mysql)
$textarea=$_POST["textarea"];
3.我試著將textarea的資料寫入Mysql
$add=insert into boards values('$textarea');
mysql_query($add);
我的疑問:
如果我輸入的資料是i'm xxx那sql指令會因為'符號的關係出錯是要如何避免這點呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.169.212.195
1F:→ gname:1.把$add印出來看 2.看 error message 10/29 18:08
2F:→ NOXI:$add能印出textarea的資料 10/29 18:10
3F:→ NOXI:感謝大大,我知道為什麼了..因為我輸入的資料是I'm xxx 10/29 18:14
4F:→ NOXI:有一個'符號...害我的mysql指令出錯 10/29 18:14
※ 編輯: NOXI 來自: 118.169.212.195 (10/29 18:16)
※ 編輯: NOXI 來自: 118.169.212.195 (10/29 18:17)
5F:→ yade:用看看 stripslashes()? 10/29 18:22
6F:推 mervynW:htmlspecailchar 10/29 21:37
7F:→ buganini:純不推樓上 10/29 22:56
8F:→ buganini:$add='insert into boards values ('.mres($txt).')'; 10/29 22:58
9F:→ buganini:mres()為mysql_real_escape_string() $txt為$textarea。 10/29 22:59
10F:→ kerash:如果是用上一篇文章的 mysqli_query 好像可以不用 mres() 10/29 23:29
11F:→ kerash:算是一個好處..但是老實說我很少看到用mysqli的QQ 學識淺薄 10/29 23:30
12F:→ buganini:其實應該推mysqli 畢竟官方都說要丟掉mysql了 10/29 23:32
13F:→ buganini:其實看php.net的example就很有幫助啦 10/29 23:32
14F:→ kerash:由於是基於mysql的改善版,應該大多數函式是差個 i 而已 10/30 00:06
15F:→ kerash:可能之後在應用的習慣上需要改(不用特別過濾字元了) 10/30 00:06
16F:→ kerash:此外 mysqli 只有在 php5 可以跑的樣子 10/30 00:06
17F:推 whatai:過濾字元的動作本身就很重要 不會因為sql可以接受 10/30 00:17
18F:→ whatai:某些特殊字元就可以不去過濾 10/30 00:17
19F:推 whatai:將' " `這些字元轉成 &qout; 之後echo會當成html的語法 10/30 00:21
20F:→ MOONRAKER:mysqli不錯,跟舊的mysql函數幾乎一一對應 10/30 03:42
21F:→ MOONRAKER:新手仍然可以看老式的教學,然後照著在mysqli上做 10/30 03:43
22F:推 whatai:其實如果只為特殊字元沒必要去學mysqli 10/31 00:18
23F:→ whatai:而且以後真的出去工作 要應用時見得會提供你mysqli的環境 10/31 00:19
24F:→ whatai:除非你願意把現有的資料庫還有網頁 api等等重新包成mysqli 10/31 00:20
25F:→ whatai:過濾字元 tag 一直都是很重要的工作 例如防護XSS sql注入 10/31 00:22
26F:→ MOONRAKER:不見得會提供?我怎麼不知道mysqli還要另外裝? 10/31 02:50
27F:→ MOONRAKER:現在誰的php老到沒有mysqli?都pdo了咧 10/31 02:51
28F:→ MOONRAKER:sanitization撿framework裡面的來用,何必自己做輪子 10/31 02:52
29F:推 kerash:有啦,如果是 php5 以下的好像就不能跑了XD... 10/31 08:51
30F:→ MOONRAKER:還在5以下不容易吧 :| 10/31 09:08
31F:→ buganini:應該很多公司還在用老code,阿不過這種公司就... 10/31 10:43
32F:→ kerash:別懷疑 .. 我公司的中文網站還是php4 .. 我之前才要求更新 10/31 13:30
33F:→ kerash:不過一更新整天公司的 mail 也會跟著停擺..所以還沒更新 10/31 13:30
34F:→ shadowjohn:還很多地方還在用php4...但別小看他們整理的東西XD超強 10/31 13:36
35F:→ herb123456:推mysqli跟pdo,與資料庫連結還是包成class才方便... 11/01 23:15
36F:→ shadowjohn:只推pdo,有pdo當然用pdo XD 11/01 23:35