PHP-使用NO数据库存储信息


PHP - Store information with NO database

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

我的问题是:

  • 有可能吗
  • 我该怎么做

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

编辑:顺便说一下,我终于用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");

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

会话或cookie如何

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

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

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

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

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

要设置文件名,请使用:

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

要读取数据,请使用:

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

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

Cookies可能会有所帮助。我想不出其他安全的方法了。这也不太优雅。

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

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

希望这能有所帮助。

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

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

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

如果数据不需要用php写入,php数组/"关联阵列";可以使用,性能应该比JSON或XML 更好

示例:

文件内数据,storage/php_array/pages/contact.php

<?php
return [
    'title' => 'Test Title',
    'desc' => 'Test Description',
    'heading' => 'Test Heading',
    'html' => <<<'vKf4BpA7en9' // using nowdoc
<div class="form">
</div>
vKf4BpA7en9
];

文件内部使用,index.php

$dataInArray = include 'storage/php_array/pages/contact.php';