Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP>;存储CMS可编辑用户设置的最佳方法_Php_Mysql_Xml_Settings - Fatal编程技术网

PHP>;存储CMS可编辑用户设置的最佳方法

PHP>;存储CMS可编辑用户设置的最佳方法,php,mysql,xml,settings,Php,Mysql,Xml,Settings,我正在开发一个将被多家公司使用的CMS。因此,每个用户都有一些个人偏好和设置 在论坛中搜索时,我发现将配置设置存储在.ini文件中可能是一个很好的方法。。。但在我的例子中,每个用户都可以随时更改自己的设置 请记住,每个用户将存储30到50个选项(只有一些变量/值或几个数组),每个用户都有自己的数据库,但所有文件都将在同一台服务器中共享 所以,我想知道什么是最好的方式 1) 数据库: 创建一个“config”表,将每个设置存储为一行,应用程序将每次访问数据库以加载设置; 诸如此类: 第1行->va

我正在开发一个将被多家公司使用的CMS。因此,每个用户都有一些个人偏好和设置

在论坛中搜索时,我发现将配置设置存储在.ini文件中可能是一个很好的方法。。。但在我的例子中,每个用户都可以随时更改自己的设置

请记住,每个用户将存储30到50个选项(只有一些变量/值或几个数组),每个用户都有自己的数据库,但所有文件都将在同一台服务器中共享

所以,我想知道什么是最好的方式

1) 数据库:

创建一个“config”表,将每个设置存储为一行,应用程序将每次访问数据库以加载设置; 诸如此类:

第1行->var=“user\u logo\u url”//type=“string”//value=“”

第2行->var=“some\u array\u value”//type=“array”//value=“此处序列化的值”

2) XML:

将数据存储到xml文件中并对其进行解析以加载配置(或者在登录时加载并将其存储在$\u会话中)

3) 数据库并写入INI或PHP文件:

好的,我甚至知道这是可能的,但它将把所有设置存储在数据库中(以便于管理),然后使用fwrite将设置保存为php文件中的变量,从而在加载设置时具有更好的性能

我对php非常陌生,所以我不知道考虑应用程序性能的最佳方法是什么,如果您能提供帮助,我将不胜感激

如果我有什么不清楚的地方,请告诉我


谢谢

我个人会使用数据库。只需创建一个名为“config”的表(或类似的表),其中包含两个字段:configId varchar(100)、configValue varchar(255)(如果需要大量数据,请键入text)

PHP数组可以序列化,也可以使用
内爆()

例如:

$value = array("one", "two", "three");
$configValue = implode("|", $value);

$configValue
将以单个字符串的形式返回:
“一|二|三”
。使用
$value=explode(“|”,$configValue)
将反转此过程。

我将设置存储为json字符串,尝试一下……搜索json_encode和json_decode

顺便说一句,您可以只保存在db上,当您要加载时,加载一个全局变量并将数据库请求(web名称等)保存在那里,或者与db进行持续连接,甚至通过ini文件(使用php.ini parse)。
在缺乏性能的情况下,这可能是相同的,因为它们将不得不加载,但如果您有一些配置只需要加载一次的网站,您可以在var上连接db->storage并使用该var来满足您的需要

我对json一无所知,但现在您提到了,我将搜索它。非常感谢。谢谢你的提示。。。但是加载每个页面的所有配置行不会影响性能?最好是在登录时加载所有配置并存储为$\u会话,还是在每个页面加载数据库并保持temp目录较小(存储的会话变量较少)。这取决于您希望它的安全程度。如果设置中没有存储任何重要的内容(或安全性),那么使用会话是完全可以接受的。但是,如果您正在存储API访问键之类的内容或需要隐藏的内容,最好每次都调用数据库。编辑:由于这个原因,我在会话中存储一些值,同时为其他人进行数据库调用。起初没有重要的值可存储,但很高兴知道您对安全性的看法。。。因此,即使是服务器端,$\u会话(而不是cookies)也不能安全地保存密码,例如?再次感谢(好的。会话信息存储在服务器上的公共临时目录中,任何人(我指的是任何人)都可以查看,所有数据都以纯文本形式存储。