Включенные переменные не работают в PHP - PullRequest
1 голос
/ 11 августа 2009

Хорошо, так что это что-то действительно простое, и я знаю, что когда кто-то скажет мне ответ, я буду чувствовать себя очень глупо, но я не могу понять, почему следующий код не соответствует работает:

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 находится в родительской папке текущего каталога.

Я полностью озадачен, любая помощь крайне приветствуется. Заранее спасибо,

Simon

То, что у вас есть выше, - это буквально весь мой php-код.

Ответы [ 6 ]

5 голосов
/ 11 августа 2009

Вы не можете включить HTTP через этот код

С инструкция

Если "URL fopen wrappers" включены в PHP (который они по умолчанию конфигурации), вы можете указать файл для включения с помощью URL (через HTTP или другая поддерживаемая оболочка - см. Список поддерживаемых протоколов / оболочек для списка протоколов) вместо местный путь Если целевой сервер интерпретирует целевой файл как PHP код, переменные могут быть переданы в включенный файл с использованием запроса URL строка, используемая с HTTP GET. Это не строго говоря то же самое вещь, как в том числе файл и имеющий он наследует переменную родительского файла объем; сценарий на самом деле запустить на удаленном сервере и Затем результат включается в местный сценарий.

0 голосов
/ 30 сентября 2011

Пожалуйста, проверьте это: http://php.net/manual/en/features.remote-files.php

0 голосов
/ 16 сентября 2010

Вы пытаетесь включить веб-страницу ... что вы не можете сделать.

include ('http://some_domain/public_html/db_config.php') не собирается на работу ...

вы хотите включить файл в каталог:

включают ( 'C: /some_directory/public_html/db_config.php')

0 голосов
/ 11 августа 2009

В index.php

<?php

defined("BASEDIR", dirname(__FILE__));
defined("DIRMYSQL", BASEDIR . "/public_html/db_config.php");

?>
0 голосов
/ 11 августа 2009
<?php
$_MYSQL = "db_config.php';
?>

или просто измените включение на

<?php
include('db_config.php');
?>
0 голосов
/ 11 августа 2009

в случае сбоя подключения к БД в переменной указывается false, поэтому echo false это как эхо ''; -> вы ничего не увидите.

Попробуйте var_dump ($ variable); на $ фрукты, как вам предложил Манзу Ахмед.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...