Передача и обработка данных средствами SSI

Автор: manager Понедельник, Март 17th, 2008 Нет комментариев

Рубрика: Интернет

Передача данных (1-й способ)
Данные передаются точно так же, как и для обычных html файлов — через URL либо с помощью формы методом GET. В принципе, и обрабатывать их можно точно так же. Но, если вы хотите изменять SSI-вставку в зависимости от переданных данных, читайте дальше.

Особенности
Для SSI данные лучше передавать в виде name=value. Метод GET формы так и делает, а вот если вы самостоятельно формируете строку запроса, она должна выглядеть так:
file.shtml?var1=value1&var2=value2 и т.д.
Получение данных
Нам мало передать данные. Нам надо еще и получить их. Для того, чтобы увидеть, что мы там себе передали, включите в файл строку

Эта строка нам в дальнейшем не понадобится. Она нужна лишь для того, чтобы увидеть, передается ли хоть что-нибудь. В дальнейшем, если что-то не так пойдет, вставьте эту строку в файл и проверьте, может вы где-то не так буковку написали.
Самый простой способ использования
Допустим, у вас на сайте есть FAQ, но ответы на вопросы такие объемные, что хотелось бы выводить их по одному и при этом, если потом приспичит поменять дизайн, чтобы долго не возиться. Мы делаем одну страничку (назовем ее faq.shtml), оформляем ее как положено, а в том месте, где должен быть ответ, пишем

Учтите, что может быть, для вашего сервера надо использовать не фигурные, a круглые скобки или даже вообще без них обойтись.
Теперь ответы на вопросы пишем каждый в своем html-файле, в котором нет ничего, кроме текста да тегов, с ним связанных (B, FONT и т.д), и желательно не использовать атрибуты COLOR, чтобы потом не мучаться.
Ссылки на ответы надо делать следующим образом

где url — адрес html-файла, содержащего ответ, можно относительный — только смотрите не запутайтесь.
В принципе, весь сайт можно организовать по такому принципу. Если вы любите менять дизайн, то чтобы это сделать, достаточно будет изменить всего один файл — и вот у вас новый сайт.

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

Передача данных
file.shtml?username=Alexey&birth=1974
эквивалентно


Возможности по использованию этих бесценных сведений в SSI довольно ограничены, но мы можем попытаться с ними что-нибудь сделать.
Можно просто вставить переменную в документ.

Например, используя переданные ранее данные, можно написать
Привет,
В результате чего на экране появится Привет, Alexey

Пример посложнее. Если в файле написать

то потом в вызывающем файле можно использовать

Таким образом, мы можем передавать из включаемых файлов в вызываемые различные конфиденциальные сведения. Пользователь не видит инструкции SSI — они обрабатываются сервером и передаются уже в итоговом, «готовом к употреблению» виде.
Можно поизвращаться и попробовать проанализировать переданные данные и на их основе что-нибудь сделать.
Условные операторы выглядят так




Элемент endif является обязательным. elif можно повторять сколько угодно раз. После if и elif пишется HTML-код, который будет подставляться при истинности условия. После else пишется код, который подставится, если ни одно из имеющихся ранее условий не выполнилось.
Например

Привет,

Привет,

Такой нехитрый код выводит приветствие, но если человека зовут Alexey, буквы будут чуть-чуть побольше.
Передача данных (2-й способ)
Можно передавать данные и средствами SSI. Плюс у этого метода в том, что он, в отличие от первого способа, проходит незамеченным для пользователя. Чтобы передать данные, надо их присвоить какой- нибудь переменной. Все переменные, объявленные в файле, доступны и в вызываемых, и в вызывающих файлах. Но!!! Само cобой разумеется, что надо сначала подключить файл, а потом использовать имеющиеся в нем данные, а в подключаемых файлах использовать можно только то, что имеется к моменту подключения.

Второй способ организации сайта

Он немножко сложнее, но (имхо) прогрессивнее.
Все свои статьи пишем в формате html, но избегаем применения тегов, меняющих цвет, и не указываем body. Сохраняем (допустим в файле text.html), и запоминаем адрес этого сайта. Никому его не говорим — он будет для сугубо внутреннего использования.
Теперь создаем «публичный» файл для этой статьи, его мы будем заносить в каталоги и рекомендовать знакомым. Он состоит всего из нескольких строчек.





Как видите, мы указали в нем заголовок, ключевые слова, описание и «приватный» файл, в котором содержится статья (text.html). Можно еще написать то, что вы там еще обычно пишете в заголовке. Я чаще всего ограничиваюсь одним title. Как-то спокойно отношусь к тому, что релевантность маленькая окажется :-) .
Теперь создаем файл интерфейса (*,shtml). Начало его выглядит так:

<meta name="description" content="«>
<meta name="keywords" content="«>

Далее оформляем внешний вид — вешаем баннеры, вставляем счетчики, добавляем новости и т.д. Наконец в том уголке, где должна быть статья, пишем

Теперь для радикального изменения дизайна всего сайта достаточно изменить лишь наш файл интерфейса.
Нюансы
В зависимости от ситуации а так же различного программного обеспечения может быть разным синтаксис написания имен переменных. Если вы все сделали как тут написано и ничего не вышло, попробуйте следующее:
Вставьте строку
и посмотрите, есть ли вообще у вас хоть какие-то переменные. Если есть, но использовать их не получается, попробуйте другой способ написания :
«name»
«$name»
$name
«${name}»
«$(name)»

Один из них сработает.
Если у вас не работает даже printenv, Возможно, вам сначала нужно сделать из своего компьютера сервер. Самый простой способ — установить программу Small Http Server. Проста в установке и использовании, инструкция на русском языке. После установки сможете тестировать на своем компе CGI, SSI, PHP и т.д.

Alexey Godovnik

Школа начинающего Юзера
Источник: http://www.izcity.com/

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты