WebScript.Ru
C:\   главная  ::   о сайте  ::  каталог скриптов  ::  гнездо  ::  форум  ::   авторам  :: Новостройки ::   ХОСТИНГ  ::

|| разделы::
|| поиск по сайту::

|| реклама::
|| новости почтой::
Рассылки Subscribe.Ru ::



Новости сайта WebScript.Ru
Популярные статьи

Hot 5 Stories

|| рекомендуем::




Управление сайтом


Прислал: Lion [ 03.01.2002 @ 13:26 ]
Раздел:: [ Статьи по PHP ]


Эта статья, возможно, поможет и облегчит вам создание и поддержку вашего сайта. Изменив всего несколько файлов вы сможете быстро сменить дизайн вашего творения. В качестве введения предлагаю вам почитать эту статью.

Итак, что нам нужно:
Хостинг поддерживающий php, например //webservis.ru
Текстовой редактор.

Для начала предлагаю вам создать все необходимые файлы на вашем компьютере, и уже потом загрузить их на сервер.
Создадим файл index.php, это будет основа  вашего сайта:

<?
if (!isset($page)) $page=0;
$data=file("config.php");
$max=count($data);
if ($page >$max) $page=0;
if (ereg("[[:alpha:]]",$page)) $page=0;
$data=explode("|",$data[$page]);
echo "<html><head>$data[1]</head><body>";
include("header.php");
include("$data[0]");
include("footer.php");
echo "</body></html>";
?>

Теперь создадим файл config.php, его формат:
адрес_главной_страницы|мета-теги
адрес_n-ой_страницы|мета-теги
первая строчка – для главной страницы. Под мета-тегами я подразумеваю, то что будет вставляться в <head></head> страницы. Пример:

main.html|<title>Главная страница</title>
about.html|<title>О Фирме</title>
works.html|<title>Работы</title>
contacts.html|<title>Контакты</title>

Разумеется, страницы main.html и т.д. нужно создать и разместить в них вашу информацию, это то, что будет включаться в середину страниц отдаваемых скриптом.

Теперь создадим файл header.php, в нем разместим тот html код, который будет вверху всех страниц, например, это может быть навигация, ваш логотип, баннеры и т.д.
Создадим файл footer.php, в нем разместит html код, который будет вставляться вниз всех страниц. Например, это могут быть счетчики.

Конечно же, файлы header.php и/или footer.php можно создать пустыми, или вообще отключить их включение в страницы, отдаваемые скриптом, удалив из файлы index.php строки include("header.php"); и include("footer.php");

А теперь о том, как пользоваться скриптом.
Закачайте все файлы на сервер. Главную страницу вызывайте просто обратившись к скрипту, например //xonix.ru/site/index.php. Это вызовет страницу вашего сайта, которая указана в первой строчке файла config.php.
Все адреса страниц указанные в файле config.php, ниже первой строчки вы можете вызвать с помощью скрипта, например так: //xonix.ru/site/index.php?page=1 – это приведет к вставке в середину страницы содержания файла указанного во второй строке файла config.php; //xonix.ru/site/index.php?page=2 - к использованию третьей строчки из файла config.php.

Для того, что бы вам было легче разобраться, предлагаю скачать //xonix.ru/data/scripts/site.zip
пример, установленный на //xonix.ru/site.

А теперь описание скрипта...

if (!isset($page)) $page=0;
Это строка проверяет и если переменная $page не определена, ей присваивается
значение 0.

$data=file("config.php");
В этой строчке скрипт открывает файл config.php и он построчно заносится в массив
$data.

$max=count($data);
Определяем размер массива, т.е. получаем индекс самого большого элемента содержащегося
в нем и заносим его в переменную $max. В данном случае результатом будет количество
строк содержащихся в файле config.php.

if ($page >$max) $page=0;
Если число $page больше количества строк содержащихся в массиве, то $page=0.
Другими словами, если скрипт вызывается с параметром $page, больше возможного,
то скрипт будет отдавать главную страницу.

if (ereg("[[:alpha:]]",$page)) $page=0;
Здесь, используя регулярные выражения. Мы проверяем не содержит ли переменная
$page букв, и если они в ней имеются, то $page=0, результат – скрипт будет отдавать
главную страницу.

$data=explode("|",$data[$page]);
В данный момент массив $data содержит строки из файла config.php, как вы помните,
в $page содержится номер строчки из config.php, которая должна быть обработана
скриптом.  В результате выполнения этой строчки, из массива $data берется строка
с индексом $page. Explode разбивает ее используя символ “|” в качестве разделителя
и записывает уже новое значение в массив $data. После этого в $data[0] будет
содержаться адрес страницы, которая должна вставляться скриптом, а в $data[1]
мета-теги для этой страницы.

echo "<html><head>$data[1]</head><body>";
Эта строчка выводит теги <html><head>, далее вставляются мета-теги из $data[1]
и выводится закрывающий тег </head>. Дальше идет тег тела страницы <body>.

include("header.php");
Эта строчка просто вставляет вместо себя содержимое файла header.php, который
содержит верхнюю часть, вставляемую во все страницы.

include("$data[0]");
Здесь мы вставляем содержание старинцы, ее адрес берется из $data[0].

include("footer.php");
Здесь вставляет содержимое файлы footer.php, который содержит нижнюю часть вставляемую
во все страницы.

echo "</body></html>";
Здесь выводятся закрывающие теги </body> и </html>.

Если что непонятно телеграфируйте сюда
 


 :::::  Snape пишет 03.01.2002 @ 15:39 
Не катит. Плохо это и не правильно. Надо всё делать с системой шаблонов и БД, а так гибкости ну ни какой!
 :::::  Compote пишет 03.01.2002 @ 18:01 
Cогласен со Snape
 :::::  Alan пишет 03.01.2002 @ 22:14 
Слабовато, как для php...
А то что всё надо делать с базами..... ну не всегда...
 :::::  Павел пишет 06.01.2002 @ 19:52 
Шаблоны! Только шаблоны! Лучше день потерять чтоб потом за пять минут долететь :))
 :::::  Sad пишет 07.01.2002 @ 17:13 
Нормальный подход.
Один из многих возможных.
 :::::  Maxim Matyukhin пишет 08.01.2002 @ 01:49 
> if (ereg("[[:alpha:]]",$page)) $page=0;
может лучше так:
$page=intval($page);

> echo "<html><head>$data[1]</head><body>";
> include("header.php");
А вот header.php можно организовать так:
<html><head><title><?php echo $HTML_Title;?></title>
<?php echo $HTML_Meta;?>
</head>
<body>
....

А в скрипте можно такое написать:
$HTML_Title="Title";
$HTML_Meta="";
include("../template/header.php");

 :::::  DJALEX пишет 20.01.2002 @ 04:36 
this is error in code :)) oshibki prostyje .......

$max=count($data); <<<<< max rows in example 3 yes
but remember that you can write command row with sign minus
www.xxx.com/?page=-1 and you will see error in coding :))
next time you write 3
the number of rows is 3 and array is 0 1 2 ;)))))))
dangerous numer start at 4 and array rows ends at 2, number 3 is free for hacking :))

add:
if ($page >$max-1) $page=0;
if ($page < 0 ) $page=0;
or make one row :)))))))

see ya :)) best wishes from lithuania ..... mozhet drugoj raz napishu na ruskom :))

 :::::  Илья пишет 28.12.2002 @ 06:58 
В начале приведена ссылка на статью,
В той статье серьезные проблемы безопасности.
Как дело обстоит с Вашим скриптом?
 :::::  Doctor[X] пишет 07.02.2003 @ 16:32 
В этом скрипте вроде ничего опасного нет.

Вот у меня другой вопрос, волнует меня поесковики, они будут интересно отыскивать нужные странички?
 :::::  Rodent пишет 03.04.2003 @ 19:29 
Народ у меня вот какой вопрос, а если мне параметры еще какие-либо передавать надо будет (те же самые новости или голосование), то как поступить.
ведь у меня index.php?page=3
новости news.php?news=3
и голосование vote.php?id=3
Ведь не напишешь так index.php?page=vote?id=1 ни браузер ни php не поймут
Помогите...
 :::::  Spectator пишет 06.04.2003 @ 06:07 
index.php?page=vote?id=1 :)

так - index.php?page=vote&id=1 !!!!!!!
 :::::  Zoo'L пишет 29.03.2004 @ 13:46 
Простите, но у меня не работает (так, как написано в статье).
Вернее, работает только начало, отображается только первая страница (main), а по ссылкам www. xxx.ru/index.php?page=x не переходит - так и остается main.
Можете сами посмотреть http://giwist.meoko.com там одна ссылка в навигации "Главная". Что делать?
 :::::  lion пишет 29.03.2004 @ 18:55 
2 Zoo'L
в самом начале поставте $page=$_GET['page']
 :::::  Zoo'L пишет 29.03.2004 @ 19:32 
Простите, в самом начале, чего? Если index.php, то вооще не грузится и выдает ошибку. Если можно покажите куда вставлять вместе с кодом (небольшой кусок). Спасибо.
 :::::  Zoo'L пишет 30.03.2004 @ 12:58 
Разобрался, теперь переход по ссылкам работает, но при вызове из браузера http://xxx.com или http://xxx.com/index.php вставка вообще не происходит, отображается только header и footer и куча ошибок...? Страница main отображается только при вызове ее, как http://xxx.com/index.php?page=0
 :::::  Jevgenij пишет 28.04.2004 @ 20:56 
Nichego ne ponimayu - Zoo'L - ob'yasni - v chem tut oshibka?
U menya tozhe nichego ne otkryvaetsya/ tochnee vseravno glavnaya stranica
 :::::  Lexeg пишет 27.12.2004 @ 16:04 
Я не могу понять где в начале нужно ставить "$page=$_GET['page'] ". разъясните плс!!!
 :::::  skatadov пишет 03.08.2008 @ 22:43 
Подниму старую темку, может кому сейчас понадобится))

по поводу

>>>Простите, в самом начале, чего? Если index.php, то вооще не грузится и выдает ошибку. Если можно покажите куда вставлять вместе с кодом (небольшой кусок). Спасибо.

надо отдельно

<? $page=$_GET['page'] ?>
<?
if (!isset($page)) $page=0;
$data=file("config.php");
$max=count($data);
if ($page >$max) $page=0;
if (ereg("[[:alpha:]]",$page)) $page=0;
$data=explode("|",$data[$page]);
echo "<html><head>$data[1]</head><body>";
include("header.php");
include("$data[0]");
include("footer.php");
echo "</body></html>";
?>

по крайней мере, у меня нормально заработало при такой подстановке
 :::::  MosK пишет 01.03.2011 @ 11:23 
когда вставляете $page=$_GET['page'] - то не забудьте вконце поставить ;
иначе буде лаг. грубо говоря надо так:

<?
$page=$_GET['page']ж
if (!isset($page)) $page=0;
$data=file("config.php");
$max=count($data);
if ($page >$max) $page=0;
Имя:
Email:
URL

Введите сумму двух чисел девять и одинн (девять+одинн=?)
Запомнить мою информацию

* Html запрещен* Ваш E-mail опубликован не будет.

Copyright © 2000-2001 WebScript.Ru nas@webscript.ru
Design © 2001 by Parallax Design Studio (aka Spectator.ru)
Все торговые марки и авторские права на эту страницу принадлежат их соответствующим владельцам.
Сгенерировано за: 0.0214860