Форумы портала PHP.SU » » Вопросы новичков » не передаётся переменная при использование require

Страниц (3): [1] 2 3 »
 

1. koka - 22 Июня, 2011 - 14:08:16 - перейти к сообщению
Здравствуйте!!! Предположим, у меня есть файл index.php, где я задаю переменную и подключаю php файл shablon.php

PHP:
скопировать код в буфер обмена
  1. $TITLE = "Автомагазин  РУЛЕВОЙ - запчасти для иномарок в Ижевске";
  2. require "shablon.php";
  3.  


В файле шаблон следующий код:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP $BASEURL="http://rulevoi.net/"; ?>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6.         <title> <?PHP echo $TITLE; ?> </title>
  7.  


Однако title выводится пустой.

В описании написано:
Цитата:
Конструкция require позволяет включать файлы в PHP сценарий до выполнения сценария PHP


Следовательно, переменная $TITLE должна быть распечатана в заголовке страницы.
Или я не прав???

Как правильно и удобно передать значение переменных включаемым файлам???

PS. Я хочу создать файл шаблона страниц сайта. Потом создаю php файл нужной страницы, где объявляю переменные, например, тот же заголовок веб-страницы, содержание центральной колонки и т.п., после чего вызываю файл шаблон, который выводит страницу, используя данные переменные.

На мой взгляд, эта схема будет достаточно удобно. Буду рад, если вы подскажете более гибкую и красивую схему Закатив глазки
2. Coder1994 - 22 Июня, 2011 - 14:10:18 - перейти к сообщению
попробуйте вставить
3. koka - 22 Июня, 2011 - 14:21:02 - перейти к сообщению
Coder1994 пишет: попробуйте вставить


Coder1994, куда именно надо вставить???

Пробовал так (в файле index.php, который вызывает файл шаблона)

PHP:
скопировать код в буфер обмена
  1. global $TITLE = "Автомагазин  РУЛЕВОЙ - запчасти для иномарок в Ижевске";


Выдаёт ошибку
PHP:
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected '=', expecting ',' or ';' in /home/cp945785/public_html/index2.php on line 4
4. Coder1994 - 22 Июня, 2011 - 14:23:32 - перейти к сообщению
в файл который вы подключаете.
5. koka - 22 Июня, 2011 - 14:29:50 - перейти к сообщению
Coder1994, к сожалению, не заработало.

Пробовал вывести в подключаемом файле так

PHP:
скопировать код в буфер обмена
  1. <div class='centerblock'>
  2. <?PHP echo $GLOBALS["CONTENT"]; ?>
  3. </div>


и так

PHP:
скопировать код в буфер обмена
  1. <div class='centerblock'>
  2. <?PHP echo global $CONTENT; ?>
  3. </div>
  4. <div class='rightblock'>


в первом случае не выводится ничего, во втором случае выдаёт ошибку.
PHP:
скопировать код в буфер обмена
  1. Parse error: syntax error, unexpected T_GLOBAL in /home/cp945785/public_html/page.php on line 70


Вот здесь было написано, что не глобальная переменная должна быть видна в во всех require и include
http://www.php[dot]ru/manual/languag[dot][dot][dot]ables[dot]scope[dot]html
6. Coder1994 - 22 Июня, 2011 - 14:32:17 - перейти к сообщению
вообще зачем вам известно, что делает
?
require вызывает файл до выполнения кода, используйте include_once
7. OrmaJever - 22 Июня, 2011 - 14:33:46 - перейти к сообщению
koka пишет:
<?PHP $BASEURL="http://rulevoi.net/"; ?>
<!DOCTYPE html>
<html>
<head>
<title> <?PHP echo $TITLE; ?> </title>

Не понял Не понял а где там вобще require?
8. Coder1994 - 22 Июня, 2011 - 14:34:27 - перейти к сообщению
OrmaJever пишет:
koka пишет:
<?PHP $BASEURL="http://rulevoi.net/"; ?>
<!DOCTYPE html>
<html>
<head>
<title> <?PHP echo $TITLE; ?> </title>

Не понял Не понял а где там вобще require?

это index.php
PHP:
скопировать код в буфер обмена
  1. $TITLE = "Автомагазин  РУЛЕВОЙ - запчасти для иномарок в Ижевске";
  2. require "shablon.php";
9. koka - 22 Июня, 2011 - 14:39:23 - перейти к сообщению
пробовал и require и include, всё равно значение перемнной в файле шаблона не выводится.
Немного запутался со значение этих функций. Если я использую require, то PHP файл, который я подключаю, не будет выполнен???
10. Coder1994 - 22 Июня, 2011 - 14:40:35 - перейти к сообщению
koka пишет:
пробовал и require и include, всё равно значение перемнной в файле шаблона не выводится.
Немного запутался со значение этих функций. Если я использую require, то PHP файл, который я подключаю, не будет выполнен???

он выполняется до исполнения остального кода
11. PATCH - 22 Июня, 2011 - 14:42:04 - перейти к сообщению
задам тупой вопрос) а у тебя index.php в php тегах? ну
PHP:
скопировать код в буфер обмена
  1. <?
  2. $TITLE = "Автомагазин  РУЛЕВОЙ - запчасти для иномарок в Ижевске";
  3. require "shablon.php";
  4. ?>  


и бо ты выложил без них и это все объяснило бы) и require "shablon.php"; - твой шаблон лежит в корневой папке с index.php?
12. koka - 22 Июня, 2011 - 14:44:45 - перейти к сообщению
PATCH пишет:
задам тупой вопрос) а у тебя index.php в php тегах? ну
PHP:
скопировать код в буфер обмена
  1. <?
  2. $TITLE = "Автомагазин  РУЛЕВОЙ - запчасти для иномарок в Ижевске";
  3. require "shablon.php";
  4. ?>  


и бо ты выложил без них и это все объяснило бы)



PATCH, да. Вот полный код index.php

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. $TITLE = "Автомагазин  РУЛЕВОЙ - запчасти для иномарок в Ижевске";
  5. $CONTENT = "<UL>
  6.  
  7. <li> Детали для любых иностранных автомобилей </li>
  8.  
  9. <li> Доставка б/у деталей с авторазборок Беларусии, Санкт-Петербурга и Москвы </li>
  10.  
  11. <li> Индивидуальный подход, предпродажная подготовка </li>
  12.  
  13. <li> Тесное сотрудничество с автосервисами </li>
  14.  
  15. <li> Широкий выбор запчастей для автомобилей
  16. <b> Renault Logan,Megane,Symbol;
  17. Daewoo Nexia; Chevrolet Lanos по наличию
  18. </b>
  19. </li>
  20.  
  21. </ul>";
  22.  
  23.  
  24.  
  25. include_once "http://rulevoi.net/page.php";
  26.  
  27.  
  28.  
  29.  
  30.  
  31. ?>
13. PATCH - 22 Июня, 2011 - 14:46:48 - перейти к сообщению
Оо а разве можно подключать файл через внешку? т.е указывая полный путь через домен до файла Оо
14. koka - 22 Июня, 2011 - 14:47:55 - перейти к сообщению
Может быть, у меня что-то с тегами php неправильно в файле shablon.php???

Вот начало файла


PHP:
скопировать код в буфер обмена
  1. <?PHP $BASEURL="http://rulevoi.net/";
  2. ?>
  3. <!DOCTYPE html>
  4. <html>
  5. <head>
  6.         <title> <?PHP echo $TITLE; ?> </title>
15. Coder1994 - 22 Июня, 2011 - 14:48:47 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. include_once $_SERVER['DOCUMENT_ROOT'] . '/page.php';

Вас спасёт

 

Powered by ExBB FM 1.0 RC1