我已经学习 PHP 几天了,我遇到了一个奇怪的问题。我有两个文件:
login.php
存储数据库访问数据(用户、密码、主机、数据库)
security.php
具有操作字符串/查询以防止 sql/xss 注入(inject)的功能,还存储用于密码散列的盐前缀和后缀。
然后我有我的 index.php
、register.php
和 signin.php
。我的问题是:当我将 require_once '../login.php';
放入 register.php
时,我通常可以调用变量或函数,如 $var。另一方面,signin.php
中完全相同的模式不起作用,PHP 告诉变量未声明。我尝试这样做:global $var
,它正在工作,但我觉得它完全不安全。
1)解决这个问题的正确方法是什么?
2)与应用架构有关吗?
3) 所有使用数据库连接的函数(等等)是否应该写在一个文件中?
最佳答案
第 1 步 - 创建一个 php 文件,将所有数据库连接写入其中(示例 - db.php)
第 2 步 - 在任何与数据库相关的操作中包含此 php (db.php)。
require 'db.php'; //add your database php file here..
当您将应用程序从一台服务器迁移到另一台服务器时,这将很容易组织,并最大限度地减少错误
在 php 中有 require 和 include。 require 很好,因为如果文件不可用,它将停止执行代码。
这也很容易组织,并最大限度地减少了从一台服务器迁移到另一台服务器时造成的错误
关于php - Require_once 跨不同文件,全局作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31315477/