【发布时间】:2010-12-30 22:45:38
【问题描述】:
我需要将用户名与数据库中的值进行匹配,因此我想插入保存在 cookie 中的用户名。该功能非常简单。 cookie 存储正确,我可以回显它。我的插入脚本也可以工作,因为我可以插入其他东西。但由于某种原因,我无法插入 cookie 值。
这几乎就是我想要做的:
$username = $_COOKIE['username'];
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('error');
$query1 = "INSERT INTO Gallery (username) VALUES('$username')";
$data1 = mysqli_query ($dbc, $query1) or die('error1');
mysqli_close($dbc);
我有什么遗漏吗?我尝试使用会话,但没有运气。
我还使 cookie 在整个域中都可以访问。
【问题讨论】:
-
请转义你的输入(使用
mysql_escape_string($_COOKIE['username'])),否则你很容易接受SQL注入(非常糟糕)。 -
$username = $_COOKIE['username'];是否评估并赋予 $username 一个值?您是否看到错误消息? -
是的,它会评估。我已经回显了 $username 并获得了正确的值。代码是否应该工作?该代码假定在提交文件时运行。我用一个简单的字符串替换了 cookie,并插入了字符串。但是当我用cookie替换它时,cookie值没有被插入。
-
表名是
Galleryorgallery? -
不要
die()带有'error1'。那没用,您将丢失查询失败生成的任何错误消息。相反,请执行die(mysql_error()),它会告诉您查询失败的原因。