仅在localhost上使用SQLite3,PDO和PHP5。
使用网页表显示列,示例集(表中的1条记录),用于选择列的复选框,以及用于为后续查询选择修改器的下拉列表。 在单击“获取查询”按钮时,简单查询..
SELECT day FROM tbl;
..变成了......
SELECT datetime([day],'unixepoch','+978307200 seconds','localtime') as day FROM tbl;
(这是通过字符串替换功能完成的)
然后通过cookie传递给结果页面(使用cookie,因为我也传递了很多其他数据)
此查询现在将所有这些秒添加到已转换的unix纪元时间,并在本地时间放弃结果...(vs UTC)
如果我将查询直接硬编码到“results.php”页面,它可以正常工作。如果页面使用存储在上一页设置的cookie中的查询,则不会得到任何结果。检查结果页面元素,我可以看到已经使用完整查询设置了cookie。
我把它缩小到"+978307200"
修改器...因为没有它,它工作正常(除了978307200秒之外!)
我正在接受“+”符号发生的事情,但完全不知道如何修复它。
任何想法/建议? 感谢。
答案 0 :(得分:0)
在URL和cookies中,sing是占位符表示空格,$_COOKIES
数组包含已解析的Cookie标题,因此每个加号都会更改为空格。
如果你真的必须在页面之间传递这种数据,请使用session。
如果由于某种原因会话不是一个选项,则必须将值编码为仅包含“安全”字符,然后再将其存储到cookie中,然后在使用前对其进行解码。最受欢迎的是base64_函数