在会话中存储数据库凭证

问题描述:

使用PHP,将数据库凭证存储在$ _SESSION中可以吗?我正在寻找一种避免在每次需要使用config vars时都包含配置文件的方法。在会话中存储数据库凭证

+2

这听起来像** [XY问题](https://meta.stackexchange.com/a/66378/360627)**给我。 – GrumpyCrouton

+3

一直都有配置文件没有错! – Jeff

+0

使用$ _SESSION并不是一个好主意,因为它[看起来会慢一些](https://stackoverflow.com/a/9028875/5827005) – GrumpyCrouton

我建议坚持使用配置文件,因为它允许实时更改,如果您更改配置,那么此数据将立即更改为任何在线用户,其中会话将不得不每次重新设置改变。始终包含配置可能比您想象的要容易。

可以包括使用从你的根目录的路径的文件,如:

<?php 
    include_once $_SERVER['DOCUMENT_ROOT']."/path/to/config.php"; 
?> 

所在路径应该是从你的文档根目录,基本上是从你的项目的根目录。很多时候人们把这个文件保存在它们的根目录下,所以如果你的配置文件是http://example.com/config.php

使用这个include会从你的项目的任何php文件中加载它。

<?php 
    include_once $_SERVER['DOCUMENT_ROOT']."/config.php"; 
?> 

此外,作为Qirel提到:

的配置应该存储在公共文件夹以外 - 仅通过 (在浏览器中,而不是直接)的服务器进行访问。

+2

请注意,“include”不是函数,所以不需要括号。此外,应该将配置文件存储在公用文件夹外部 - 只能由服务器访问(而不能直接在浏览器中访问)。 – Qirel