我正在使用登录/注册系统和mysql处理云系统,但问题是php不会导入包含的变量。
这是我的配置文件:
<?php
// Connection details
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database";
?>
我的代码包含配置文件:
require("/classes/config.class.php");
当我尝试回显配置中定义的变量时会出现此错误:
注意:未定义的变量:第2行的C:\ xampp \ htdocs \ index.php中的servername
我在本地计算机上使用xampp它有PHP版本5.5.30。
编辑:php的第一行,来自评论
<?php
// Include classes require("/classes/user.class.php");
require("/classes/password.class.php");
// Include configuration require("/classes/config.class.php");
echo $servername; echo $username; echo $password; echo $dbname;
答案 0 :(得分:3)
我写了一个答案,因为我不能在评论中输入回车。
index.php 中的代码(如上面的评论):
<?php // Include classes require("/classes/user.class.php"); require("/classes/password.class.php"); // Include configuration require("/classes/config.class.php");
echo $servername;
(...)
双斜杠//
是一个注释符号,意味着将忽略同一行中的所有后续文本。
我建议您(也为了更好的代码清晰度)以这种方式进行编辑:
<?php
// Include classes
require("/classes/user.class.php");
require("/classes/password.class.php");
// Include configuration
require("/classes/config.class.php");
echo $servername;
(...)
答案 1 :(得分:2)
Config.php文件:
$database_host = "host";
$database_user = "user";
$database_pass = "pass";
$database_name = "name";
您要从以下位置调用Config变量的其他文件:
require_once 'Config.php';
$db = mysqli_connect($database_host, $database_user, $database_pass, $database_name);
答案 2 :(得分:1)
如果这不起作用,你可能只是在错误的范围内。
可能是您的包含在函数内部,然后您需要将变量的设置更改为:
$GLOBALS['servername'] = 'localhost';
或者您正在函数/类中使用变量。然后你必须使用全局关键字
myFunction() {
//$servername is not defined here
global $servername;
// now $servername is defined and the global var is used
}
但我认为你应该做一些更有用的事情:使用常数。
define('SERVERNAME','localhost');
后来获得常数(在任何范围内):
echo SERVERNAME;
答案 3 :(得分:0)
在包含变量之前,您应该检查是否尝试使用变量。
同时检查文件是否正确包含(require();
在php标签中,而不是注释(//require
))