好吧,所以这是非常基本的东西,我知道当有人告诉我答案时我会觉得很傻,但我不能为我的生活弄清楚为什么以下代码不是工作:
的index.php:
<?php include('config.php'); //this works fine. variables in this file are reached correctly - $_MYSQL is defined there ?>
<?php include($_MYSQL); ?>
<?php echo ($fruit);?>
db_config.php(这是$ _MYSQL链接到的,这没问题):
<?php
$fruit = "apple";
echo($fruit);
?>
完整性config.php看起来像:
<?php
$_MYSQL = 'http://'.$_SERVER['HTTP_HOST'].'/public_html/db_config.php';
$BASE_URL = 'http://'.$_SERVER['HTTP_HOST'].'/public_html/Opto10/';
?>
因为这些名称暗示代码是要联系这个然后连接到数据库的db_config.php,但由于某种原因,db_config文件中的变量似乎没有传递给index.php。奇怪的是include('config.php');工作完全正常,但在上面我在index.php中显示的代码“echo($ fruit);”不打印任何东西。 db_config.php中的同一行虽然(但我猜它确实意味着它包含在内)。不知何故,变量不会传递。您知道,如果这有所不同,db_config.php文件位于当前目录的父文件中。
我非常困惑,非常欢迎任何帮助。提前谢谢,
西蒙
你所拥有的就是我所有的PHP代码。
答案 0 :(得分:5)
你不能像那样穿越HTTP
如果启用了“URL fopen wrappers” PHP(它们是默认的 配置),你可以指定 要使用URL包含的文件(通过 HTTP或其他支持的包装器 - 请参阅 支持的协议/封装器列表 对于协议列表而不是 本地路径名。如果是目标服务器 将目标文件解释为PHP 代码,变量可以传递给 包含使用URL请求的文件 与HTTP GET一起使用的字符串。 :此 严格来说并不一样 包含文件和拥有的东西 它继承了父文件的变量 范围;脚本实际上是 在远程服务器上运行 结果然后被包括在内 本地脚本。
答案 1 :(得分:0)
如果与DB的连接失败,则变量中有false,所以echo false;就像回声''; - &GT;你什么也看不见。
尝试var_dump($ variable);正如Manzoo Ahmed向你建议的那样,在$ fruit上。
答案 2 :(得分:0)
<?php
$_MYSQL = "db_config.php';
?>
或只是将include更改为
<?php
include('db_config.php');
?>
答案 3 :(得分:0)
在index.php中
<?php
defined("BASEDIR", dirname(__FILE__));
defined("DIRMYSQL", BASEDIR . "/public_html/db_config.php");
?>
答案 4 :(得分:0)
您正在尝试包含一个您无法做到的网页。
包括('http://some_domain/public_html/db_config.php')aint开始工作......
您希望在目录中包含文件:
包括( 'C:/some_directory/public_html/db_config.php')
答案 5 :(得分:0)