我正在尝试在php上转义无效字符。同时还尝试了名为ezsql的php类。 这是我的代码:
<?php
include_once('ez_sql_core.php');
include_once('ez_sql_mysql.php');
$db = new ezSQL_mysql('root','pword','db','localhost');
$uname=$db->escape($_GET['uname']);
$pword=$db->escape($_GET['pword']);
$db->query("INSERT INTO users(Uname, Hpword) VALUES('$uname','$pword')");
?>
如何避免生成这样的网址。而不是搞乱整个查询。 http://localhost/folder/file.php?uname=uzer的^&安培; *%#&安培; PWORD = DD'$#$%#的
答案 0 :(得分:2)
通常,您会使用mysql_real_escape_string()函数:
$uname=mysql_real_escape_string($_GET['uname']);
$pword=mysql_real_escape_string($_GET['pword']);
但是因为转义是您使用的框架的一部分,所以您已经在代码中使用了它:
$uname=$db->escape($_GET['uname']);
$pword=$db->escape($_GET['pword']);
我可以猜测,这些线路可以解决这个问题,所以不需要其他任何东西。
答案 1 :(得分:-2)
$uname = preg_replace("#[^a-zA-Z0-9]#", "", $_GET["uname"]); // removes everything non-alphanumeric
但是你需要定义“无效”字符是什么。