我将改进Apache和PHP中的网站,该网站的页面包含一个包含文件列表的表。我的目标是允许用户根据某些特定和主观标准将其中一个文件设置为“重要”文件。为了做到这一点,我希望以某种方式存储关于最“重要”文件的信息,但限制是我既不能使用数据库也不能使用文件(主管强加的约束)。
我的问题是:
我已经在这个网站上搜索过了,但我找不到答案。
编辑:顺便说一句,最后我使用XML文件解决了我的问题。非常感谢大家。答案 0 :(得分:4)
假设这些标准是客户端而不是服务器端,因为如果它们是服务器端并且它应该是所有用户的“重要”文件,则无法做到没有存储空间。
您的解决方案的假设答案是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,但这些绝对不理想。
会话或Cookie怎么样?
这两种都是故意临时的存储形式。即使Flash LSO比长期存储的Cookie更好。
这种限制实际上是鼓励不良做法......
所有这些选项都是浏览器方面的。如果用户移动到另一台PC,他/她的首选项将在该PC上重置,这与数据库驱动的身份验证系统不同,您可以根据登录信息保存首选项。
存储此类数据的最佳方法是在数据库中。如果无法运行数据库服务,则可以使用SQLite或将数据存储在JSON或XML文件中。
答案 1 :(得分:0)
Cookie可能会有所帮助。我想不出任何其他安全的方式。这也不太优雅。
http://support.mozilla.org/en-US/kb/cookies-information-websites-store-on-your-computer
答案 2 :(得分:0)
您可以使用会话和Cookie将数据暂时保留。它们不需要文件或数据库;但是,如上所述,这是暂时的,因为当浏览器关闭或cookie过期时数据消失了。
如果告诉您在不使用文件或数据库的情况下永久保留数据,那么您的主管已经将您设置为失败。
希望这会有所帮助。
答案 3 :(得分:0)
我能看到的唯一选择是使用cookie(不是永久性的,并作为文件存储在客户端上)。
另一种选择可能是使用类似Parse的内容,它允许您在云中存储数据。
这取决于您的主管的严格程度,因为第一个解决方案使用(客户端)文件而后者将在另一个服务器上使用数据库。
答案 4 :(得分:0)
您可以尝试使用Cookie来存储数据
设置文件名使用:
<?php
setcookie("important", $importantFileName);
?>
要阅读数据,请使用:
<?php
$importantFileName = $_COOKIE["important"];
?>
但这只适用于当前用户和其他用户无法查看此内容。