5

我将在 Apache 和 PHP 中改进一个网站,该网站有一个页面,其中包含一个包含文件列表的表格。我的目标是允许用户根据一些特定和主观的标准将其中一个文件设置为“重要”文件。为了做到这一点,我想以某种方式存储有关最“重要”文件的信息,但限制是我既不能使用数据库也不能使用文件(主管施加的限制)。

我的问题是:

  • 可能吗?
  • 我怎样才能做到这一点?

我已经在这个网站上进行了搜索,但我没有找到答案。

编辑:顺便说一句,最后我使用 XML 文件解决了我的问题。非常感谢大家。

4

5 回答 5

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");

对于那些使用不受支持(旧)浏览器的人,您可以使用本地存储黑客来滥用 Flash LSO,但这些绝对不是理想的。

会话或 cookie 呢?

这两种都是有意的临时存储形式。即使是 Flash LSO 也比 cookie 更适合长期存储。

这种限制实际上是在鼓励不良做法......

所有这些选项都是浏览器端的。如果用户移动到另一台 PC,他/她的首选项将在该 PC 上重置,这与数据库驱动的身份验证系统不同,您可以在登录时保存首选项。

存储此类数据的最佳方式是在数据库中。如果您无法运行数据库服务,您可以使用SQLite或将数据存储在 JSON 或 XML 文件中。

于 2013-07-26T08:43:23.927 回答
2

您可以尝试使用 cookie 来存储数据

要设置文件名,请使用:

  <?php 
    setcookie("important", $importantFileName); 
  ?>

要读取数据,请使用:

  <?php 
    $importantFileName = $_COOKIE["important"]; 
  ?>

但这仅适用于当前用户,其他用户将无法查看。

于 2013-07-26T08:33:39.110 回答
0

我能看到的唯一选择是使用 cookie(它们不是永久性的,并且作为文件存储在客户端上)。

另一种选择可能是使用Parse之类的东西,它允许您将数据存储在云中。

但是,这取决于您的主管有多严格,因为第一个解决方案使用(客户端)文件,而后者将使用另一台服务器上的数据库。

于 2013-07-26T08:32:00.323 回答
0

Cookie 可能会有所帮助。我想不出任何其他安全的方式。这也不太优雅。

http://support.mozilla.org/en-US/kb/cookies-information-websites-store-on-your-computer

于 2013-07-26T08:28:58.887 回答
0

您可以使用会话和 cookie临时保存数据。它们不需要文件或数据库;但是,如前所述,这是暂时的,因为当浏览器关闭或 cookie 过期时,数据就消失了。
如果你被告知要在不使用文件或数据库的情况下永久保存数据,那么你的主管已经让你失败了。

希望这可以帮助。

于 2013-07-26T08:29:05.530 回答