仅在本地主机上使用SQLite3、PDO和PHP5。
我使用网页表格来显示列,样本集(表中的1条记录),用于选择列的复选框,以及用于为后续查询选择修改器的下拉列表。在单击"get query“按钮时,简单的查询..
SELECT day FROM tbl;..gets变成了..
SELECT datetime([day],'unixepoch','+978307200 seconds','localtime') as day FROM tbl;(这是通过字符串替换函数完成的)
然后通过cookie将其传递到结果页面(使用cookie,因为我还传递了许多其他数据)
此查询现在会将所有这些秒添加到转换后的unix纪元时间,并在localtime...(vs )中放弃一个结果
如果我将查询直接硬编码到"results.php“页面中,它可以很好地工作。如果该页使用上一页设置的cookie中存储的查询,我将得不到任何结果。检查结果页面元素,我可以看到cookie已经设置了完整的查询。
我已经将它的范围缩小到没有它的"+978307200" modifyer...because,它工作得很好(除了978307200秒的偏差!)
我认为"+“符号发生了一些变化,但完全不知道如何修复它。
有什么想法/建议吗?谢谢。
发布于 2012-11-03 16:56:11
在URL和cookie中,加上sing是空格的占位符,而$_COOKIES数组包含解析后的cookie头,所以每个加号都被改成了空格。
如果您确实需要在页面之间传递此类数据,请使用session。
如果由于某种原因,会话不是一个选项,则在将值存储到cookie中之前,您必须将值编码为仅包含“安全”字符,然后在使用前对其进行解码。最常用的是base64_函数
https://stackoverflow.com/questions/13207486
复制相似问题