我有一个PHP购物车是由一家公司预先开发的,在订购时,我添加了额外的信息,它的属性值只是添加到变量$ post‘$_POST’,但是,当它被序列化并放入一个数据库它错误,如果它包含%,!,$等东西,它没有错误,它发送待定订单电子邮件,带他们到贝宝,让他们支付,从来没有验证过,打印机实际上是在数据库中,如果它有特殊的字符,它就不是…
我已经尝试了不同的方法,读到base64编码可以有所帮助,然而,这将意味着刮掉很多预先存在的订单,重新做很多系统,有人可以帮助吗?
谢谢!
发布于 2011-09-13 01:55:02
你遇到的问题是数据不能被转义。我猜你是在做这样的事情:
$sql = "INSERT INTO mytable (something) VALUES ('". $something ."')";
$result = mysql_query($sql);您需要做的是首先对变量进行转义:
$sql = "INSERT INTO mytable (something) VALUES ('". mysql_real_escape_string($something) ."')";
$result = mysql_query($sql);我的示例使用MySQL,但是所有支持的数据库都有类似的函数。
为您的数据库使用正确的函数。不要只使用url编码或通用字符串转义。需要加引号的字符是特定于数据库的。
https://stackoverflow.com/questions/7391401
复制相似问题