Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/16: Рейтинг темы: голосов - 16, средняя оценка - 5.00
Обитатель
 Аватар для vasvas7775
539 / 317 / 42
Регистрация: 24.12.2010
Сообщений: 795

Шаблонизатор, подключение шаблона

30.08.2011, 20:18. Показов 3197. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят делаю по принципу шаблонизаторов, к файлам индекса подключаю шаблон, а в нужных местах выводим в нем информацию.

Так вот, путь к подключению шаблона, сохраняю в бд., а потом вывожу его в файлы индекс в include.
Все вроде работает, но вот в гостевой книге, из за этого перестает работать постраничный вывод. когда нажимаешь на кнопку следующей страницы. Пишет что ошибка в подключении шаблона, тоесть вывод его из бд.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.08.2011, 20:18
Ответы с готовыми решениями:

Подключение шаблона
Проблема с подключением внутреннего шаблона. Функция не может найти/подключить $content. Внешний шаблон(V_Main.php) загружается. Все пути...

Подключение шаблона к скрипту
Есть ajax кнопка Показать еще, при нажатии на ней открываются посты. $(document).ready(function(){ /* Переменная-флаг для...

Подключение шаблона
Проблема следующего характера. Попробую объяснить. В Ворде создан документ на основе шаблона Normal. Далее создается документ на...

9
 Аватар для Денис Н.
463 / 463 / 23
Регистрация: 17.08.2011
Сообщений: 1,488
30.08.2011, 20:22
Код в студию
0
Обитатель
 Аватар для vasvas7775
539 / 317 / 42
Регистрация: 24.12.2010
Сообщений: 795
30.08.2011, 20:47  [ТС]
index
PHP
1
2
3
4
5
6
7
8
9
10
11
12
include '/shablon.php'; // Подключаем файл shablon.php
include_once '/box/podkluchenie_dannaeh/podkluchenie_dannaeh.php';
include '/bd/podkluchaem_theme.php';
 
function i($php) {
    include './' . $php . '.php';
}
   define('menu_1', 'box/menu_1');
   define('theme_menu', 'Gostevay_ckniga/ckniga/vaevod_gostevoi_cknigi');
 
/* Подключаем шаблон сайта */   
include $theme[$themS1]; // путь который хранится в бд
чтобы подключить в шаблоне гостевую, пишем в шаблоне <?= i(theme_menu) ?>

форма для смены шаблона
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- После выбора шаблона, и нажатия кнопки применить, Путь к шаблону сохраняется в базе данных my_base,
в таблице shablon, А уже потом из нее выводится в файл podkluchenie_Shablona.php  находящийся по адресу
/box/podkluchenie_dannaeh/podkluchenie_Shablona.php -->
<form action="/obrabotchik-theme_menu.php"  method="post">
<p><input type=hidden name="hidden" value="<?=$row['id']?>" /></p>
<p>Выберите внешний вид сайта</p>
<p><select name="teme_menu" required>
    <option value="/box/shablon/shablon-1.php">Шаблон 1</option>
    <option value="/box/shablon/shablon-2.php">Шаблон 2</option>
    <option value="/box/shablon/shablon-3.php">Шаблон 3 (Избранный)</option>
   </select></p>
<p><input id="scr-Enter" type="submit" class="buttons" value="Применить" /></p>
</form>
обработчик формы
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "my_base"; // название базы данных
 
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
 
/* Таблицы MySQL, в которой хранятся данные */
$table_1 = "shablon"; // Подключаем таблицу shablon
 
$data = time();
 
/* Составляем запрос для вставки информации в таблицу*/
$query = "UPDATE $table_1 SET themS_data='".$data."', themS1='".$_POST["teme_menu"]."'";
 
mysql_query($query) or die(mysql_error());
 
 
/* Делаем Автопереход на страницу */
echo ("<meta  http-equiv='Refresh' content='0; url=/index.php'>");
выводим данные из бд для подключения шаблона
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "my_base"; // название базы данных
 
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
 
/* Таблицы MySQL, в которой хранятся данные */
$table_1 = "shablon"; // Подключаем таблицу shablon
 
/* Составляем запрос для извлечения данных из полей таблицы "shablon",
Выводим все данные, что бы последнее сообщение стояло первым в самом верху. */
$page = ( isset($_GET['page']) ? intval($_GET['page']) : 1 );
$query = "SELECT id, themS_data, themS1, shablon_vsplaevaushee_ockno FROM $table_1 ORDER BY id DESC LIMIT ".( ($page - 1)*10 ).",10";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
 
while ($row = mysql_fetch_array($res)) {
 $themS_data = (string)$row['themS_data'];
 $themS1 = (string)$row['themS1']; // вывод пути из бд
 $shablon_vsplaevaushee_ockno = (string)$row['shablon_vsplaevaushee_ockno'];
}
гостевая, вывод из бд
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/* Соединяемся с базой данных */
$hostname = "localhost"; // название/путь сервера, с MySQL
$username = "root"; // имя пользователя (в Denwer`е по умолчанию "root")
$password = ""; // пароль пользователя (в Denwer`е по умолчанию пароль отсутствует, этот параметр можно оставить пустым)
$dbName = "my_base"; // название базы данных
 
/* Создаем соединение */
mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");
/* Выбираем базу данных. Если произойдет ошибка - вывести ее */
mysql_select_db($dbName) or die (mysql_error());
 
 
 
 
/* Таблица MySQL, в которой хранятся данные */
$table = "gostivaay_ckniga"; // название таблицы
 
/* Составляем запрос для извлечения данных из полей таблицы "gostivaay_ckniga",
Выводим все данные, что бы последнее сообщение стояло первым в самом верху. */
$page = ( isset($_GET['page']) ? intval($_GET['page']) : 1 );
$query = "SELECT id, data, GCkname, GCkemail, GCkICQ, GCkURL, GCktext, GCotvet FROM $table ORDER BY id DESC LIMIT ".( ($page - 1)*10 ).",10";
/* Выполняем запрос. Если произойдет ошибка - вывести ее. */
$res = mysql_query($query) or die(mysql_error());
 
 
 
/* Заменяем символы на смайлы */
include($_SERVER["DOCUMENT_ROOT"]."/bd/smail.php");
 
 
$f = "&nbsp;";
$f2 = ":";
$f4 = "Новое&nbsp;Сообщение";
 
/* Кнопка НОВОЕ СООБЩЕНИЕ */
echo "<a id=\"CkNoPkA1\" onClick=\"showhide('fff');\" href=\"#\">".$f4."</a>"."<br />";
/* Выводим данные из таблицы */
echo ("
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html>
<head>
    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />
    <title>Гостевая книга</title>
<link rel=\"stylesheet\" type=\"text/css\" href=\"/css_js/style/gostivaya/vivod_iz_bd.css\">
</head>
<body>
 
<h3>Гостевая книга.</h3>
");
 
 
        /* Постраничный вывод из базы данных */
        echo "<div id=\"navigaciay\">Страницы:";
        $Query = mysql_query('SELECT COUNT(*) as `count` FROM `'.$table.'`');//Выбираем общее число новостей
        $count = mysql_fetch_array($Query);
        $last = ( $count['count']%10 == 0 ? 0 : 1 ) + intval($count['count']/10);
        for ( $i = 1; $i <= $last; $i++ ) {
                echo ' <a href="?page='.$i.'">'.$i.'</a> ';//Выводим ссылки на остальные страницы
        }
        echo "</div>"; // - Конец -  Постраничный вывод из базы данных
 
 
 
/* Цикл вывода данных из базы конкретных полей */
while ($row = mysql_fetch_array($res)) {
 
echo "<table cellspacing=\"0\" cellpadding=\"0\" id=\"blocks\">";
  echo "<tr>";
    echo "<td id=\"Panel_vida\">";
    echo "<table cellspacing=\"0\" cellpadding=\"0\" id=\"blocks2\">";
      echo "<tr>";
          echo "<td id=\"name_4\">". "<b>". "<font id=\"text_name_1\">". $row['GCkname']. "</font>". "</b>".
          "<font id=\"text_name_3\">". $row['GCkICQ']. "</font>".
          "<font id=\"text_name_4\">". $row['GCkURL']. "</font>". "</td>";
      echo "</tr>";
    echo "</table>";
    echo "</td>";
  echo "</tr>";
    echo "<tr>";
    echo "<td colspan=\"4\" id=\"sw_4\">". "<img  id=\"sw_4_img\" src=\"/images/kartinka_ckniga/strelka.jpg\">". "</img>". "</td>";
  echo "</tr>";
    echo "<tr>";
    echo "<td colspan=\"4\" id=\"zacr_bloc1\">". "<span class=\"d1\">". "</span>". "<span class=\"d2\">". "</span>".
    "<span class=\"d3\">". "</span>". "<span class=\"d4\">". "</span>". "</td>";
  echo "</tr>";
  echo "<tr>";
    echo "<td colspan=\"4\" id=\"nomer_4\">". "<font id=\"\">".. "</font>". $f. "<font id=\"num_id\">". $row['id']. "</font>". "</td>";
  echo "</tr>";
  echo "<tr>";
    echo "<td colspan=\"4\" id=\"text_4\">". "<font id=\"text_name_5\">".strtr($row['GCktext'], $var_array)."</font>". "</td>";
  echo "</tr>";
     echo "<tr>";
     echo "<td colspan=\"4\" id=\"scr-otvet\">". strtr($row['GCotvet'], $var_array)."</td>";
     echo "</tr>";
  echo "<tr>";
    echo "<td colspan=\"4\" id=\"data_4\">". "<b>". "<font id=\"№2\">". Добавленно.$f2.$f.$f."</font>". "</b>".
          "<font id=\"№2-1\">". $row['data']. "</font>". "</td>";
  echo "</tr>";
  echo "<tr>";
    echo "<td colspan=\"4\" id=\"zacr_bloc2\">". "<span class=\"d4\">". "</span>". "<span class=\"d3\">". "</span>".
    "<span class=\"d2\">". "</span>". "<span class=\"d5\">". "</span>". "</td>";
  echo "</tr>";
echo "</table>";
}
        /* Постраничный вывод из базы данных */
        echo "<div id=\"navigaciay\">Страницы:";
        $Query = mysql_query('SELECT COUNT(*) as `count` FROM `'.$table.'`');//Выбираем общее число новостей
        $count = mysql_fetch_array($Query);
        $last = ( $count['count']%10 == 0 ? 0 : 1 ) + intval($count['count']/10);
        for ( $i = 1; $i <= $last; $i++ ) {
                echo ' <a href="?page='.$i.'">'.$i.'</a> ';//Выводим ссылки на остальные страницы
        }
        echo "</div>"; // - Конец -  Постраничный вывод из базы данных
 
/* Кнопка НОВОЕ СООБЩЕНИЕ */
echo "<a id=\"CkNoPkA1\" onClick=\"showhide('fff');\" href=\"#\">".$f4."</a>"."<br />";
 
/* Закрываем соединение */
mysql_close();
0
 Аватар для hatsub
61 / 60 / 7
Регистрация: 25.05.2011
Сообщений: 388
31.08.2011, 13:37
vasvas7775, лень рыться в коде, объясните, как реализован постраничный вывод
0
Обитатель
 Аватар для vasvas7775
539 / 317 / 42
Регистрация: 24.12.2010
Сообщений: 795
31.08.2011, 18:01  [ТС]
вот этот вот отрезок пока в гостевой отвечает за постраничный вывод
PHP
1
2
3
4
5
6
7
8
9
       /* Постраничный вывод из базы данных */
        echo "<div id=\"navigaciay\">Страницы:";
        $Query = mysql_query('SELECT COUNT(*) as `count` FROM `'.$table.'`');//Выбираем общее число новостей
        $count = mysql_fetch_array($Query);
        $last = ( $count['count']%10 == 0 ? 0 : 1 ) + intval($count['count']/10);
        for ( $i = 1; $i <= $last; $i++ ) {
                echo ' <a href="?page='.$i.'">'.$i.'</a> ';//Выводим ссылки на остальные страницы
        }
        echo "</div>"; // - Конец -  Постраничный вывод из базы данных
короче выводится последние десять сообщений и цифра для перелистывания, для оставшихся сообщений.
Так вот, первая страница, с последними 10 сообщениями, выводится, а когда нажимаешь на кнопку другой страницы, что бы посмотреть следующие, пишет что ошибка в пути подключения шаблона, а путь для подключения шаблона вытягивается из бд.
0
Обитатель
 Аватар для vasvas7775
539 / 317 / 42
Регистрация: 24.12.2010
Сообщений: 795
03.09.2011, 09:22  [ТС]
ребят, ну что скажите, вся проблема я так думаю заключается в том, что путь для подключения шаблона вытягивается из бд.
Может как то его заранее вытянуть сохранить, чтобы он гдето был сохранен, и потом подключать?
0
Веб-мастер
 Аватар для Maksimchikfull
89 / 89 / 19
Регистрация: 11.08.2011
Сообщений: 674
03.09.2011, 09:48
Может перепроверить чисто код. Я лично в первые вижу чтобы так инклуд писался.
PHP
1
2
3
<?php
icnlude '...';
?>
Я так пишу.
PHP
1
2
3
<?php
include("...");
?>
Попробуй в самом файле написать подключение к MySQL.
0
03.09.2011, 09:58

Не по теме:

Цитата Сообщение от Maksimchikfull Посмотреть сообщение
Я лично в первые вижу чтобы так инклуд писался.
include, require и т.п. - это унарные операторы
PHP
1
$result = include 'file';
Когда Вы пишете скобки, то эти скобки становятся частью выражения, которое передается в include. Т.е. не
PHP
1
include( 'file' ) ;
а
PHP
1
include ('file') ;
Для сравнения:
PHP
1
echo (42), (37), (19+23);

0
Веб-мастер
 Аватар для Maksimchikfull
89 / 89 / 19
Регистрация: 11.08.2011
Сообщений: 674
03.09.2011, 10:10
Вы попробуйте. Вполне возможно.
Вернутся назад можно...
0
Обитатель
 Аватар для vasvas7775
539 / 317 / 42
Регистрация: 24.12.2010
Сообщений: 795
03.09.2011, 11:14  [ТС]
Да нет,
Когда я прописываю подключение шаблона так
PHP
1
include '/thems/shablon-1/theme.php';
Все работает идеально. И в гостевой, после нажатия на следующую страницу сообщений она открывается.

Но когда я этот путь /thems/shablon-1/theme.php, сохраняю в БД, а из нее уже вывожу для подключения шаблона, вот тут, начинается.
Так сайт открывается и работает, после перехода в гостевую книгу, открывает ее первую страницу, а после нажатия на кнопку следующей страницы пишет что ошибка в строке подключения шаблона.
тоесть вывод его из бд.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.09.2011, 11:14
Помогаю со студенческими работами здесь

Подключение шаблона к скрипту
Есть ajax кнопка Показать еще, при нажатии на ней открываются посты. $(document).ready(function(){ /* Переменная-флаг для...

Подключение шаблона leo sport
Помогите разобраться с установкой шаблона на joomla 2.5 Все делаю правильно, но эта.. ни как не поддается. Скачал архив Leo Sport.zip ...

Произвольный тип записей, подключение шаблона и вывод созданных таксономий
Здравствуйте. Создал произвольный тип записи &quot;События&quot;. register_post_type разместил в function.php add_action('init',...

Для использование шаблона переменной требуется список аргументов шаблона
Здравствуйте! Не могу понять в чём проблема. //ALL2.cpp #include &quot;pch.h&quot; #include &lt;iostream&gt; #include &lt;Windows.h&gt; ...

Gtest, доступ к элементам базового класса-шаблона без указания параметров шаблона. баг или фича?
Всем привет. Продолжаю экспертизу gtest/gmock. Количество ошибок и багов зашкаливает. Ничего удивительного, учитывая то, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru