Переменные передачи файла конфигурации PHP?

Я новичок в php, так что терпите меня...

У меня есть два файла здесь. Оба находятся в ОДНОМ каталоге

У меня есть файл конфигурации:

config.php

<?php
date_default_timezone_set('America/Chicago');

define('APP_NAME',"/control");
define('HTTP_SERVER', 'http://localhost/');
define('SITE_NAME', 'http://localhost/');
define('DOCUMENT_ROOT', $_SERVER['DOCUMENT_ROOT'].APP_NAME);
?>

Затем у меня есть индексный файл:

индекс.php:

<!DOCTYPE html>
<html>
<head>
<?php
require ('config.php');
echo "<script type='text/javascript' src='".DOCUMENT_ROOT."/scripts/jquery.js"'></script>;
?>
.....THE REST OF MY HTML.....

Но я получаю сообщение об ошибке, что "DOCUMENT_ROOT" не определен. Почему он не извлекает значение из файла config.php?


person bagofmilk    schedule 27.01.2014    source источник


Ответы (3)


Измените эту строку: (отсутствует конечная кавычка " после </script> и знак $ перед DOCUMENT_ROOT)

Я протестировал следующее на своем сервере, и скрипт загрузился, так как у меня есть jquery.js.

echo "<script type='text/javascript' src='".DOCUMENT_ROOT."/scripts/jquery.js"'></script>;

to:

echo "<script type='text/javascript' src='$DOCUMENT_ROOT/scripts/jquery.js'></script>";

or:

echo "<script type='text/javascript' src='".DOCUMENT_ROOT."/scripts/jquery.js'></script>";
person Funk Forty Niner    schedule 27.01.2014
comment
Это помогает, но теперь мне не разрешено загружать локальный ресурс - person bagofmilk; 28.01.2014
comment
Дай мне пару минут. @багофмилк - person Funk Forty Niner; 28.01.2014
comment
Я где-то читал, что это связано с разрешениями xampp, но никто не объясняет дальше этого. - person bagofmilk; 28.01.2014
comment
В порядке. У меня нет возможности загрузить все, что вы используете, однако мой сервер не выдал никаких ошибок, когда я удалил $ в src='$DOCUMENT_ROOT, можете ли вы попробовать заменить src='$DOCUMENT_ROOT в моем ответе на src='DOCUMENT_ROOT @bagofmilk - заметил ваш другой комментарий. Я ничего не знаю о xampp - person Funk Forty Niner; 28.01.2014
comment
Я получаю эту ошибку: (GET localhost/control/DOCUMENT_ROOT/scripts/jquery.js 404 Не Найдено) ). мой код имеет это: echo ‹script type='text/javascript' src='DOCUMENT_ROOT/scripts/jquery.js'›‹/script›; - person bagofmilk; 28.01.2014
comment
Я вроде понял. Когда я делал это оригинальным способом, как я писал, я вернул это на свой сервер <script type='text/javascript' src='/scripts/jquery.js'></script>, и я мог видеть файл jQuery в исходном коде, когда щелкал по нему в FF 26.0 - это при использовании src='$DOCUMENT_ROOT @bagofmilk - person Funk Forty Niner; 28.01.2014
comment
Итак, по какой-то странной причине я изменил require ('config.php') на --> require 'config'.php, и это сработало. Я удалил скобки, ОДНАКО, это все еще дает мне ошибку, что он не может загрузить из локального ресурса. Это проблема с разрешениями? Если да, то как мне это отредактировать? - person bagofmilk; 28.01.2014
comment
Возможно, вы не можете использовать слово DOCUMENT_ROOT для определения, это может быть зарезервированный метод. @bagofmilk - но я посмотрю, что я могу сделать. - person Funk Forty Niner; 28.01.2014
comment
Кроме того, вы не сможете использовать DEFINED слов для JS, но я могу ошибаться. @багофмилк - person Funk Forty Niner; 28.01.2014
comment
Ваш желаемый результат будет /control/scripts/jquery.js случайно? @багофмилк - person Funk Forty Niner; 28.01.2014
comment
Попробуйте это echo "<script type='text/javascript' src='".DOCUMENT_ROOT."/scripts/jquery.js'></script>"; @bagofmilk — это повторило весь путь моего сервера. - person Funk Forty Niner; 28.01.2014
comment
Это работает, но пишет, что не может загрузить локальный ресурс. Итак, он находит файл, но говорит, что ему не разрешено загружать его. - person bagofmilk; 28.01.2014
comment
Вышеприведенное повторяет <script type='text/javascript' src='/var/user1/public_html/control/js/jquery.js'></script> @bagofmilk - person Funk Forty Niner; 28.01.2014
comment
Хорошо, это наверняка как-то связано с настройками вашей системы. @багофмилк - person Funk Forty Niner; 28.01.2014
comment
Я изменил настройки Windows, чтобы все пользователи имели полный контроль и все равно получали ошибку. Это вещь xampp, и я нигде не могу найти ничего, что могло бы помочь - person bagofmilk; 28.01.2014
comment
Я гуглю, пока мы говорим. @bagofmilk Если я найду что-то важное, я дам вам знать. - person Funk Forty Niner; 28.01.2014
comment
А что, если вы добавили public (в зависимости от имени вашей общей папки) и изменили оба ваших http://localhost/ в вашем конфиге на http://localhost/public/? @багофмилк - person Funk Forty Niner; 28.01.2014
comment
Несколько вещей, которые я нашел (в вашем файле конфигурации): Вместо http://localhost/ попробуйте http://127.0.0.1 или просто localhost/ @bagofmilk - и не повезло с тем, что я также написал чуть выше? - person Funk Forty Niner; 28.01.2014
comment
моя общая папка контролируется, и она отлично определяет путь, просто не открывает файл из-за разрешения. Путь, который он находит: http://localhost/control/scripts/jquery.js, который является правильным, поэтому код php правильный - я думаю, что-то связанное с разрешениями xampp. - person bagofmilk; 28.01.2014
comment
Все ли ваши папки доступны для записи? @bagofmilk Например 777 - person Funk Forty Niner; 28.01.2014
comment
Все пользователи имеют полный доступ ко всем папкам/файлам на диске C:\ - person bagofmilk; 28.01.2014
comment
Эти ответы на SO могут помочь stackoverflow.com/a/9349612 и stackoverflow.com/a/12656964/1415724 - А что касается настроек конфигурации вместо http://localhost/, можете ли вы попробовать фактический путь к диску? То есть: `C:\drive\control`? или что-то в этом роде. @багофмилк - person Funk Forty Niner; 28.01.2014
comment
Я предполагаю, что моя главная проблема здесь заключается в том, что на мои сценарии и стили не ссылаются, когда пользователь переходит на php-страницу внутри дочерней папки. Если кто-нибудь знает способ обойти это, это было бы здорово. Мое предположение заключалось в том, что мне нужно определить корневой каталог, но это превратилось в xampp, не позволяющее мне загружать локальные файлы. - person bagofmilk; 28.01.2014

Вам нужно разыменовать вашу переменную, используя $:

$DOCUMENT_ROOT

Это предполагает, что он был правильно определен в серверной среде.

person Nathan    schedule 27.01.2014

В конце вашего эха есть небольшая синтаксическая ошибка, в остальном у меня все работает нормально.

echo "<script type='text/javascript' src='".DOCUMENT_ROOT."/scripts/jquery.js\"'></script>";
person LifeQuery    schedule 27.01.2014
comment
Теперь мне не разрешено загружать локальный ресурс... но это устранило ошибку DOCUMENT_ROOT - person bagofmilk; 28.01.2014
comment
Вы избежали двойных кавычек после jquery.js, используя \ ? - person LifeQuery; 28.01.2014
comment
Я использовал это: (echo ‹script type='text/javascript' src='.DOCUMENT_ROOT./scripts/jquery.js\'›‹/script›;) и ссылка на ошибку такова: (file:/// C:/xampp/htdocs/control/scripts/jquery.js%22). Он кодирует обратную косую черту как% 22 - person bagofmilk; 28.01.2014