关于php过滤非法字符解决方案

WBOY
Freigeben: 2016-06-13 13:48:58
Original
1213 Leute haben es durchsucht

关于php过滤非法字符
SQL语句查入时错误,过滤掉   '   %   ?等符,看到网上有这个mysql_real_escape_string函数,我使用后返回空,不知道什么原因?还有什么好用的php过滤字符函数吗?

------解决方案--------------------
addcslashes
------解决方案--------------------
注意,差一个C

addcslashes
像 C 那样使用反斜线转义字符串中的字符 (PHP 4, PHP 5)

string addcslashes ( string str, string charlist )

描述
返回字符串,该字符串在属于参数 charlist 列表中的字符前都加上了反斜线。此函数对 \n、\r 等进行转义。像 C 那样,ASCII 码低于 32 以及高于 126 的字符均转换成使用八进制表示。

当你选择对字符 0、a、b、f、n、r、t 和 v 进行转义时需要小心,它们将被转换成 \0、\a、\b、\f、\n、\r、\t 和 \v。在 PHP 中,只有 \0(NULL)、\r(回车符)、\n(换行符)和 \t(分隔符)是预定义的转义序列, 而在 C 中,上述的所有转换后的字符都是预定义的转义序列。

charlist 参数,如“\0..\37”,将转义所有 ASCII 码介于 0 和 37 之间的字符。


使用反斜线引用字符串 (PHP 3, PHP 4, PHP 5)

string addslashes ( string str )

描述
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号( ')、双引号( ")、反斜线(\)与 NUL(NULL 字符)。

一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O 'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\ 'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。

默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

本人推荐用后者

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage