这与我不久前问过的问题类似,但这似乎没有引起任何答案,所以我会再试一次。
我有一个您登录的预订系统,您的用户名存储在名为 $_COOKIE['ID_my_site']
的 Cookie 中。我有一个脚本,在用户预订航类后运行,该脚本将所有详细信息存储到一个表中(名为 OABS_customers
),该脚本工作正常,但是不起作用的一行是 username
行,将 $_COOKIE['ID_my_site']
添加到该行中。
该表的结构如下:
Name Type(Length) Null Default name varchar(60) No noname address1 varchar(60) No noaddress address2 varchar(60) No noaddress2 county varchar(60) No nocounty postcode varchar(32) No nopostcode customer tinyint(4) No seats varchar(11) No 0 number tinyint(4) No 0 class varchar(11) No noclass username varchar(60) No nousername
正如我所说,一切正常,但 username
列除外,该列仅显示默认值 nousername
。这是我正在使用的代码;
$query = "INSERT INTO OABS_customers (用户名) VALUES ('$user')";
其中 $user = $_COOKIE['ID_my_site']
(在上述脚本之前定义)。
如果有人可以帮助解决这个问题,我将不胜感激。
最佳答案
永远不要将未转义的、用户生成的字符串放入 SQL 查询中。某些恶意用户可能会更改 cookie,从而导致 SQL 注入(inject)。使用mysql_real_escape_string($user)
转义字符串。
确保$_COOKIE['ID_my_site']
不为空
mysql_query("INSERT INTO OABS_customers (username) VALUES ('". mysql_real_escape_string($user) ."')");
关于PHP变量进入mySQL表: not working?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10640891/