【发布时间】:2012-05-17 06:36:12
【问题描述】:
这是我试图用来存储客户端 IP 地址的代码。我试图通过尝试做一些在这个问题中看到的事情来将 IP 地址存储到一个无符号整数:Which MySQL datatype to use for an IP address?
这是我的代码:
$client_ip = $_SERVER['REMOTE_ADDR'];
$ip_insert = "SELECT INET_ATON('$client_ip')";
$sql = "INSERT INTO rtv_sign_cispa (name_cispa,ip_cispa,email_cispa,message_cispa) VALUES ('$name','$ip_insert','$email','$message')";
该语句中还有其他内容被存储,但忽略这些内容,它们有效,但不是 IP 地址。
错误:
错误:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的 '192.168.2.1')','email@email.com','Hmmmm')' 附近
near 后面的 ip 地址实际上显示了正确的 IP,当然出于安全原因,我只是将其切换为本地 ip。 email@email.com 和 Hmmm 来自一个为激活它而填写的表格,所以不要介意。
有谁知道我做错了什么?我对 SQL 有点陌生。
【问题讨论】:
-
您是否尝试过打印出代码生成的 SQL,并将其直接粘贴到数据库中以查看会发生什么?
-
你有一个 SQL 注入漏洞。
-
@SLaks 它在哪里?我是一个初学者,所以我真的不知道在尝试使其安全时要寻找什么。