Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблемы с движком.


Автор: Blaga 29.12.2005, 20:33
Привет всем, такая проблема: Решил сделать элементарный движок для сайта чтобы появлялась таблица в одном столбце чтоб были ссылки на страницы а в другом сам контент. Так вот у меня есть два файла index.php и links.php index.php - там хранится как бы шаблон всего сайта а в файле links.php - хранятся переменные с сылками. Как мне сделать так чтобы при нажатии на ссылку загружался документ в этом же шаблоне (index.php) но уже со своим контентом. smile
Вот код index.php
Код

<?php
$content = "Информация по умолчанию.";      
echo "<html><head><title>?????</title></head>";
echo "<body><table border=5><tr><td>";
include "links.php";
echo "</td><td> $content </td></tr></table>";
echo "</body></html>"
?>

А вот links.php
Код

<?php
$link1 = "<a href=document1.html>index1</a>";
$link2 = "<a href=document2.html>index2</a>";
$link3 = "<a href=document3.html>index3</a>";
$link4 = "<a href=document4.html>index4</a>";
echo " $link1 <br>";
echo " $link2 <br>";
echo " $link3 <br>";
echo " $link4 <br>";
?>


Ответы делайте пожалуйста вместе с кодом а то я совсем еще новичок в PHP и этот движок всего лиш второй скрипт на php.

Автор: Illuminaty 29.12.2005, 21:40
У тебя ссылки на document1.html ... document4.html, а не на index.php.
У тебя mod_rewrite так настроен? Если не знаешь что такое mod_rewrite, то переделай ссылки на такие (к примеру) index.php?id=1 ... index.php?id=4. В index.php проверяй значение переменной $_GET["id"]
Код

<?
// index.php
function GetContent($i_id) {
/* получение контента по id из файла или БД или чего-нибудь еще */
}

$content_id = 1;
if (isset($_GET["id"])) {
  if ($_GET["id"] < 5 || $_GET["id"] > 0) {
    $content_id = $_GET["id"];
  }
}
$content = GetContent($content_id);       
echo "<html><head><title>?????</title></head>";    
echo "<body><table border=5><tr><td>";    
include "links.php";    
echo "</td><td> $content </td></tr></table>";    
echo "</body></html>";
?>


PS Про mod_rewrite http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&article_num=002835

Автор: Mal Hack 29.12.2005, 23:00
http://forum.vingrad.ru/index.php?showtopic=60035&hl=

Автор: Blaga 30.12.2005, 07:00
Illuminaty
Mal Hack

Спасибо большое я все понял и очень рад пойду дальше к вершинам программирования!!! smile

Автор: Blaga 30.12.2005, 07:33
Illuminaty
Кхм... Я тут кое что проглядел.
Теперь на уровне то все работает только содержимое страниц то, скрипт не получает и как следствие переменная $content остается пустой smile . Так что же все таки надо сделать что бы она получала не просто id страницы но и сам контент. Заранее оговорюсь что у меня нет и не предвидется базы данных(MySQL) возможны только какие-то текстовые конфиги но в которых не будет хранится сам контент, контент будет хранится либо в html странице либо в txt файле пример текстового или html документа:
Код

<b><h1>Привет Мир!!! </h1></b>  


и будет это дело вставлятся в файле index.php между тегами body и /body
Ну и конечно пример пожалуйста smile

Автор: sugee 30.12.2005, 13:18
links.php
Код

<?php
$link1 = "<a href=index.php?content=./document1.html>index1</a>";
$link2 = "<a href=index.php?content=./document2.html>index2</a>";
$link3 = "<a href=index.php?content=./document3.html>index3</a>";
$link4 = "<a href=index.php?content=./document4.html>index4</a>";
echo " $link1 <br>";
echo " $link2 <br>";
echo " $link3 <br>";
echo " $link4 <br>";
?>


index.php
Код

<?php
$content = "Информация по умолчанию.";  
$content=isset($_GET['content']) ? $_GET['content'] : $content;    
echo "<html><head><title>?????</title></head>";
echo "<body><table border=5><tr><td>";
include "links.php";
?>
</td><td> <? 
if(!isset($_GET['content'])) echo $content;
 else
 readfile ($content); ?></td></tr></table>
</body></html>


$content будет передаваться в index.php через ссылку, т.е. методом GET.
В index.php проверяем есть ли $_GET['content'] если есть присваиваем
ее $content, если нет $content сохраняет дефолтное значение.

Автор: Blaga 30.12.2005, 13:27
sugee Спаибо большое!!! Теперь все работает как надо smile

Автор: Enya 1.1.2006, 23:58
Я вот всё выше перечисленное понимаю.
Нельзя ли вот только объяснить как организовать БД к этому примитивному движку.

Автор: Mal Hack 2.1.2006, 00:26
Enya
Модератор: Пожалуйста, один топик - один вопрос.
Модератор: используйте поиск.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)