【发布时间】:2016-05-28 22:01:51
【问题描述】:
我想接受一个地点的地址并将其输入我的数据库。如果我将地址作为参数发送给以下函数,它将删除所有初始和结束空格以及所有特殊字符
public function sanitizeString($string){
$sanitized_string = htmlentities(mysqli_real_escape_string($this->conn, trim($string)));
return $sanitized_string;
}
但正如我们在
之类的地址中所知道的那样1/A Grand Trunk Road, Kolkata - 31
需要考虑一些特殊字符,例如 '/'、'-'、'、'。
我基本上想将某些地方的地址存储在我的数据库中,并使用 Google Maps GeoCoding API 将它们转换为纬度和经度,并使用标记在 Google Map 上标记它们。
任何人都可以建议我如何清理地址以保持某些特殊字符完整或其他存储地点地址的方法吗?
编辑
对于那些询问的人,我在处理数据库查询时确实使用 PDO 准备语句。这是一个例子
public function getUserByEmailAndPassword($email, $password){
$stmt= $this->conn->prepare("select * from users where email= ? and status=1");
$stmt->bind_param("s", $email);
if($stmt->execute()){
$user= $stmt->get_result()->fetch_assoc();
$stmt->close();
return $user;
}
else{
return NULL;
}
}
但在我将 $email 作为参数传递之前,我正在使用 mysqli_real_escape_string 对其进行清理,我可能不需要这样做,因为我认为 prepare 和 bind_param 负责 sql 注入。
【问题讨论】:
-
'/'、'-'、',' 在此上下文中不是特殊字符。 qquesque - github.com/…
-
如果我的回答有帮助,请告诉我。
-
但所有 ASCII 标点符号和符号都是特殊字符,它们可能不在这种情况下,但如果我清理字符串,它将删除所有特殊字符
-
在将数据插入数据库之前不要做 htmlentities;在显示数据时使用它,而不是在存储数据时使用它
-
@CodeRabbit,不,不是所有的 ASCII 标点和符号都是特殊字符,为什么要特殊? stackoverflow.com/questions/1086918/…
标签: php google-maps