Каталог статей
Поиск по базе статей  
Статья на тему Интернет » Интересное в сети » PHP: делаем простой каталог

 

PHP: делаем простой каталог

 

 

Одним из распространенных типов сайтов является некое подобие каталога — скажем, список продаваемых фирмой товаров или написанных вами программ. Типичным дизайном такого сайта является список названий товаров на одной странице, и по странице с (более или менее) подробным описанием каждого товара. Довольно часто у пользователя возникает желание посмотреть не один, а несколько товаров и, возможно, сравнить их между собой. И приходится ему, бедному, открывать множество окон и переключаться между ними...

В некоторых случаях это бывает оправдано — в частности, если описание товара достаточно большое.

загрузка...

 

 

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

Как ни смешно, но сделать это совсем не сложно. Все, что потребуется — это добавить на страницу списка товаров форму и элементы управления для выбора нужных товаров. Например, создадим страницу selector.html:

<html>
<head><title>Выбор интересных товаров</title></head>
<body>
<form action="selector.html" method=post>
<input type=checkbox name="item1" value="item1.htm"<?php echo (isset($_POST['item1'])) ? "checked>" : ">"; ?> Описание первого товара <br>
<input type=checkbox name="item2" value="item2.htm"<?php echo (isset($_POST['item2'])) ? "checked>" : ">"; ?> Описание второго товара <br>

....

<input type=submit value="Показать товары">
</form>
<hr>
<?php
while(list($k, $v) = each($_POST))
if (file_exists($v)) readfile($v);
?>
</body></html>

После этого создадим страницы описания для каждого товара и сохраним их в соответствующих файлах — item1.htm, item2.htm и так далее. В этих описаниях надо убрать все служебные заголовки — <html>, <title> и прочие — и оставить только сами описания. Теперь посмотрим, что произойдет...

Когда страница selector.html откроется в браузере, посетитель увидит список товаров, перед каждым из которых будет стоять чекбокс. Посетитель отметит заинтересовавшие товары и нажмет кнопочку «показать». Так как в качестве значения action формы указана эта же страница, то она начнет загружаться снова, но в работу вступит PHP-код, который мы написали...

Сохранять при перезагрузке страницы значения, введенные посетителем — это «хороший тон»Прежде всего, для каждого товара из списка будет проведена проверка: передано ли соответствующее значение? В строке

<input type=checkbox name="item1" value="item1.htm"<?php echo (isset($_POST['item1'])) ? " checked>" : ">"; ?> Описание первого товара

первая часть — <input type=checkbox name="item1" value="item1.htm" — является «чистым» HTML и будет напечатана как есть, а php-вставка "<?php echo (isset($_POST['item1'])) ? " checked>" : ">"; ?> проверит, установлено ли значение элемента массива $_POST с именем item1 (что может произойти, только если посетитель отметил соответствующий чекбокс), и если да, то допишет к строке " checked<", а если нет, то допишет "<". В первом случае чекбокс будет отмечен, а во втором — нет, то есть на странице сохранятся те же отметки, которые сделал посетитель.

Довольно часто бывает проще прокрутить весь массив в цикле, чем проверять, установлены ли нужные значения по отдельностиКогда вся форма выведется, в дело вступит цикл, который последовательно просмотрит элементы массива $_POST и для каждого переданного значения проверит, есть ли на сервере файл с таким именем. Если файл обнаружится, то он будет прочитан и передан в браузер, а если нет — ничего и не произойдет. И в результате всех этих манипуляций посетитель увидит одну страницу с подробными описаниями всех заинтересовавших его товаров...

Если у вас паранойя — это еще не значит, что за вами не следят!Хочется подчеркнуть, что данный скрипт написан исключительно для иллюстрации метода — при «промышленном использовании» надо обязательно проверять корректность передаваемых посетителем данных перед их использованием. В противном случае посетитель сможет посмотреть практически любой файл, к которому веб-сервер имеет доступ — достаточно, например, передать в качестве значения POST-переменной item1 что-то вроде "/etc/passwd".

Можно делать и многуровневые выборкиВариант с включением готовых файлов в страницу будет удобен для большинства небольших корпоративных сайтов, но никто не мешает вместо чтения файла указать любые другие команды — например, выбрать требуемые данные из базы. А можно делать и многоуровневые выборки — например, если item1htm — это не товар, а раздел второго уровня, то можно в нем прописать ссылки на товары точно так же, как и в приведенном примере (но без тега <form>), а страницу selector.html немножко модифицировать, заключив вывод элементов внутрь еще одной формы

<form action="selector.html" method=post>
<?php
while(list($k, $v) = each($_POST))
if (file_exists($v)) readfile($v);
?>
<input type=submit value="Показать товары">
</form>

Естественно, при этом вам надо будет добавить и еще один цикл для вывода «окончательных элементов».

Подобный подход — сведение выбранных элементов в одну страницу — может использоваться не только для вывода информации о товарах, но и, например, для списков ответов на типичные вопросы, прайс-листов и тому подобных вещей. Отдельно можно упомянуть страницы сравнения однотипных товаров или программ — если в «конечном файле» прописать строку таблицы с характеристиками товара, а цикл вывода заключить внутрь тегов <table>, то получится очень удобный инструмент, позволяющий быстро разобраться в преимуществах и недостатках интересующих предметов. Разумеется, можно и еще много чего придумать — дело за вами.

Надеюсь, что данная технология поможет вам сделать свой сайт более интересным и удобным для посетителей. Успехов!



Статья получена: hostinfo.ru

загрузка...

 

 

Наверх


Постоянная ссылка на статью "PHP: делаем простой каталог":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

Hummer будут делать в России!

В этом году в Калининграде на заводе «Автотор» начнут сборку сразу нескольких внедорожников компании General Motors. Причем, одним из них, по информации «Коммерсанта», будет легендарный Hummer! Помимо Hummer «Автотор» начнет собирать Chevrolet TrialBlazer и Chevrolet Tahoe.

» Американскии автомобили - 2355 - читать


Toyota Avensis: Avensis просто автомобиль

В тесте участвуют автомобили: Toyota Avensis Посмотреть другие фото (5) "Тойота Авенсис" пришла на смену модели "Карина-Е". Начало продажи в России запланировано на март с. г.

» Японские автомобили - 3950 - читать


Делаем из Honda Pilot уникальную машину

Honda Pilot -- автомобиль для России редкий. Выпускается он в Канаде для североамериканского рынка. Это типичный "паркетник", который не блещет внедорожными качествами, но наряду с комфортом способен доставить эстетическое удовольствие.

» Японские автомобили - 2600 - читать


Nissan Teana: Дело Maxima живет

В тесте участвуют автомобили: Nissan Teana Ну, вот и все. Участь Maxima QX решена — уже через пару месяцев автомобиль с таким названием в нашей стране больше продаваться не будет.

» Японские автомобили - 2214 - читать


Toyota Avensis: Ее учили делать приятно

В тесте участвуют автомобили: Toyota Avensis Эта машина способна угодить водителю с любым темпераментом. Услада души моей Вот уж не ожидал!

» Японские автомобили - 2841 - читать



Статья на тему Интернет » Интересное в сети » PHP: делаем простой каталог

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© Art.Thelib.Ru, 2006-2024, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия Art.Thelib.Ru