我有一个正在处理的项目,它位于LAMP服务器上的受限访问环境中。我遇到问题的脚本在页面刷新时使用登录用户的当前页面和时间戳更新数据库。但是在Chrome中,页面变量被更改为字符串'nopage'mysql字段是一个没有默认设置的tinytext字段。我修改了代码只是为了测试和查明问题:
所以在'home'页面
echo $thePage;
//outputs home
$sql_in = "
UPDATE `users`
SET idle='".$config['time']."',
last_page_visit='".$thePage."'
WHERE username='".$row['username']."'
LIMIT 1 ";
echo $sql_in;
输出:
'UPDATE `users`
SET idle='1375975152',
last_page_visit='home'
WHERE username='Admin'
LIMIT 1'
$dbcnx->query($sql_in );
exit();
这是奇怪的事情。第一个echo正确输出页面,例如'home',最后一个echo输出正确的sql,其中'home'代表所有浏览器的变量(我知道,浏览器在这里不重要)。但是,当我使用Chrome时,它总是为数据库中的last_page_visit字段输入字符串'nopage'。我无法弄清楚为什么它会正确回显,但仅在使用Chrome时才更改数据库。
我把出口放进去,所以我确信在此之后没有其他代码被执行。我还搜索了我的整个项目中的字符串'nopage'并且找不到它。变量$ thePage从$ _GET ['home']获取值,因此我可以看到Chrome向$ _GET变量列表报告了错误的值,但它回显正确。当我用字符串替换last_page_visit的变量时,数据库将正确记录我放入的任何内容。我不知道还有什么可以尝试。