Главная > РНР: настольная книга программиста
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

13.21. Включение исходного кода текста, содержащегося в файле

Каждый, сделавший хоть одну страничку в Сети, сталкивался с проблемой изменения тех или иных данных на ней. Конечно, это не сложно, когда страничек несколько, но если вы сделали большой сайт, дополнение (например, в меню) в сотни файлов может превратиться в настоящий кошмар. РНР быстро решает эту проблему, позволяя вкладывать одну страницу в другую. Достигается это с помощью операторов require и include. После них должен стоять путь к вкладываемому файлу. Например:

include('test.phtml') ;

Различие между указанными операторами заключается в том, что require подменяется содержимым указанного файла и может быть использован только один раз, a include — вставляет и выполняет содержимое указанного файла, что позволяет применять его несколько раз в цикле. Вложения файлов могут происходить только внутри серверного пространства, доступного РНР. Другими словами, вы не можете использовать в имени файла http://.

Достаточно часто встречаются сайты, ссылки которых включают в себя специальные символы — &, ?, %, что указывает на работу програмы РНР. Дело в том, что если в конце ссылки добавить ?имя=значение, это значение будет доступно под этим же именем в файле, куда указывает ссылка. Если необходимо добавить несколько имен, они могут быть разделены знаком &. Теперь мы можем сделать сайт, который будет доступен с помощью только одной странички, а всю остальную информацию эта страничка будет выводить на основании полученных по ссылке данных. Вид такой ссылки будет примерно таким:

http://my_domain_name/index.phtml?link=1

Единица в конце ссылки и есть наш параметр, который будет представляться в файле index.phtm. Например:

<html>

...

<?php

$name = "";

if ( $link == 1 ) {

    $name = " name1.phtml";

}

if ($link == 2) {

    $name = "name2.phtml";

}

if ($link == 3) {

    $name = " name3.phtml";

}

include ($name);

?>

...

</html>

Обратите внимание: написанный нами код учитывает ситуацию, когда посетитель по разным причинам указал неправильный параметр. В этом случае выводится заготовленное сообщение об ошибке. Если же параметр соответствует какому-либо из файлов сайта, он вкладывается в код файла index.phtml и исполняется. Таким образом, начало и конец остаются одинаковыми, а изменяется только середина. И какие-либо изменения уже не кажутся такими страшными, как раньше. Ведь сделать надо только в одном файле, а отразится это на всем сайте.

Есть и другой путь. Его суть заключается в том, что у РНР есть доступ к так называемым переменным окружения сервера. Одна из этих переменных — запрашиваемый посетителем путь относительно адреса сайта. И этот путь становится нам доступен для использования. В этом случае ссылки будут такого вида:

http://my_domain_name/index.phtml?patch/name.phtml

Вторая часть ссылки — html — будет нам доступна, если мы считаем параметр $query_string. Например:

$add = $query_string;

Теперь изменим наш головной файл index.phtml, чтобы все работало автоматически. А если запрашиваемый параметр не будет указан (будет равен пустой строке), чтобы что-то открыть, присвоим переменной $add имя файла, который должен

быть открыт как главная страничка. Пусть это будет файл main.phtml. Тогда код будет выглядеть следующим образом:

<html>

...

<?php

$add = $query__string;

if ($add == "") {

    $add = "main.phtml";

}

include($add);

...

?>

</html>

Как видите, еще проще.


ВНИМАНИЕ

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


Categories

1
Оглавление
email@scask.ru