Сайт php на includ'ах

12
The*cHEg
На сайте с 13.01.2008
Offline
53
1130

Люди добрые! :)

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

Заранее благодарен! ;)

S
На сайте с 27.12.2007
Offline
35
#1

Вот пример.

<?php

include("header.php");

echo file_get_contents($page.".txt");

echo file_get_contents("footer.txt");

?>

Ищу работу. php+symfony+jquery.
D
На сайте с 10.08.2007
Offline
52
#2

The*cHEg: возьмите почитайте любой FAQ по php - все сразу станет ясно. + документация на php.net поможет.

Самый простой вариант: в файле header.php находится верхушка дизайна, в footer.php находится подвал. В page.php пишете:


<?php
$title='Заголовок страницы';
$meta_keywords='Ключевые слова';
include_once('header.php');
?>
[тут идет контент в html]
<?php
include_once('footer.php');
?>

В header.php в нужном месте вписываем <?php echo $title;?>, <?php echo $meta_keywords;?>.

ETNO
На сайте с 16.06.2008
Offline
117
#3
dating?:
The*cHEg: возьмите почитайте любой FAQ по php - все сразу станет ясно. + документация на php.net поможет.
Самый простой вариант: в файле header.php находится верхушка дизайна, в footer.php находится подвал. В page.php пишете:

<?php
$title='Заголовок страницы';
$meta_keywords='Ключевые слова';
include_once('header.php');
?>
[тут идет контент в html]
<?php
include_once('footer.php');
?>

В header.php в нужном месте вписываем <?php echo $title;?>, <?php echo $meta_keywords;?>.

в вашем случае ещё стоит упомянуть, что в самом header.php нужно прописать

<head>

<title><?=$title?></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta name="description" content="<?=$description?>" />
<meta name="keywords" content="<?=$keywords?>" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
Wordpress тема для заработка на партнерках (http://themeforest.net/item/rehub-directory-shop-coupon-affiliate-theme/7646339). Создание каталогов с фильтрацией, расширенный функционал обзоров, layout builder, еженедельное обновление.
D
На сайте с 10.08.2007
Offline
52
#4

ETNO: я написал вообще-то :)

В header.php в нужном месте вписываем <?php echo $title;?>, <?php echo $meta_keywords;?>.
kr4shr
На сайте с 07.08.2008
Offline
8
#5

Как вариант — делаем папку content, куда складываем файлы примерно такого содержания:

<?
$title = "Заголовок";
$meta_keys = "ключевые слова";
$meta_desc = "описание для в метатегах";
$content = <<< HTML
Здесь контент страницы
HTML;
?>

А потом делаем файл index.php

<?
if (!isset ($_GET ['page']))
{
include ("./content/main.php"); // main.php файл по образцу с контентом главной страницы
}
else
{
$file = "./content/" . $_GET ['page'] . ".php";
if (file_exists ($file)) include ($file);
else die ("404: запрашиваемой страницы не существует");
}
?>
<html>
<head>
<title><?=$title?></title>
<meta name="keywords" content="<?=$meta_keys?>" />
<meta name="description" content="<?=$meta_desc?>" />
</head>
<body>
<!-- тут можно добавить меню и всё остальное, что должно быть перед контентом -->
<?=$content?>
<!-- тут всё то, что должно быть после контента -->
</body>
</html>

Тогда страницы сайта будут иметь вид http://сайт.ru/index.php?page=page_name, где page_name — название файла со страницей в папке content.

А ещё можно прикрутить нормальные урлы вида http://сайт.ru/page_name.html внесением в .htaccess следующего кода:

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([a-zA-Z0-9_]*).html index.php?page=$1
php-engineer.ru (http://php-engineer.ru) :: icq: 61-56789 pc trained user -> web page authoring specialist -> php specialist (http://tests.specialist.ru/public.asp?uid=424570)
tommy-gung
На сайте с 22.11.2006
Offline
304
#6

мда, как вариант генерируем дор

или ставим любую cms и наполняем интересным контентом для людей, а не для роботов

Здесь не могла быть ваша реклама
kr4shr
На сайте с 07.08.2008
Offline
8
#7

tommy-gung, при чем тут дор? Не просёк...

J
На сайте с 11.10.2007
Offline
15
#8
kr4shr:
Как вариант — делаем папку content, куда складываем файлы примерно такого содержания:

А потом делаем файл index.php

И получаем просто замечательную дырку на сайте

R
На сайте с 30.05.2007
Offline
163
#9

В нужном Вам месте вставляете инклуд вида <? include("test.php"); ?>

Создаете пустой файл test.php, туда вставляете то, что будет появляться вместо инклуда.

А затем уже вставляете другие инклуды и создаете файлы, например: <? include("footer.php"); ?> берет содержимое из footer.php; <? include("menu.php"); ?> берет содержимое из menu.php и т.д.

kr4shr
На сайте с 07.08.2008
Offline
8
#10
И получаем просто замечательную дырку на сайте

Да, можно залатать дыру, которая позволяет включать любой файл (не только из папки content, а Вы эту дыру имели ввиду?)

Вот эту строчку:

if (file_exists ($file)) include ($file);

Заменяем на:

if (file_exists ($file) && preg_match ("/[0-9a-zA-Z_]/", $_GET ['page'])) include ($file);

Вроде больше дыр в коде нет. По–крайней мере, я их не вижу...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий