我打算用 Apache 和 PHP 改进一个网站,该网站有一个页面,其中包含一个包含文件列表的表格。我的目标是允许用户根据一些特定和主观的标准将其中一个文件设置为“重要”文件。为了做到这一点,我想以某种方式存储有关最“重要”文件的信息,但我不能使用数据库或文件(主管施加的限制)。
我的问题是:
- 这可能吗?
- 我该怎么做?
我已经在该网站上进行了搜索,但没有找到答案。
编辑:顺便说一句,最后我使用 XML 文件解决了我的问题。非常感谢大家。
最佳答案
假设这些标准是客户端而不是服务器端,因为如果它们是服务器端并且它应该是所有用户的“重要”文件,那么就没有办法了这没有存储。
您的解决方案的假定答案是 localStorage()...
它依赖于 Javascript,绝对不是一个完美的解决方案,但是 HTML5 localStorage允许您在用户的计算机上存储首选项。
首先,检测对 localStorage() 的支持:
if (Modernizr.localstorage) { // with Modernizr
if (typeof(localStorage) != 'undefined' ) { // Without Modernizr
如果支持,则设置一个参数:
localStorage.setItem("somePreference", "Some Value");
然后稍后检索它,只要您的用户没有清除本地存储:
var somePreference = localStorage.getItem("somePreference");
当你想清除它时,只需使用:
localStorage.removeItem("somePreference");
对于那些使用不受支持的(旧版)浏览器的用户,您可以使用 local storage hacks滥用 Flash LSO,但这些绝对不理想。
session 或 cookie 呢?
这两种都是有意的临时存储形式。对于长期存储,即使是 Flash LSO 也比 cookie 更好。
约束实际上是在鼓励不良做法......
所有这些选项都是浏览器端的。如果用户移动到另一台 PC,他/她的首选项将在该 PC 上重置,这与数据库支持的身份验证系统不同,在该系统中您可以保存登录时的首选项。
存储此类数据的最佳方式是在数据库中。如果你不能运行数据库服务,你可以使用 SQLite或将数据存储在 JSON 或 XML 文件中。
关于PHP - 在没有数据库的情况下存储信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17876424/