我有一个正在处理的项目,它位于 LAMP 服务器上的受限访问环境中。我在使用登录用户的当前页面和时间戳更新页面刷新时遇到问题的脚本。但是在 Chrome 中,页面变量被更改为字符串“nopage”。mysql 字段是一个 tinytext 字段,没有默认设置。我修改了代码只是为了测试和查明问题:
所以在“主页”页面上
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 的变量时,数据库将正确记录我放入其中的任何内容。我不知道还能尝试什么。