Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
Facebook 0 Likes
Twitter 0 Followers
Instagram 0 Followers
Pinterest 0 Followers
YouTube 0 Subscribers
Подписаться
Маркетер
Маркетер
  • Маркетинг
  • Digital
  • Реклама
  • Public Relations
  • Менеджмент
  • Новости
  • PHP

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

  • 06.05.2004
Total
0
Shares
0
0
0
0
0
0

Автор статьи: Дмитрий Турецкий

>

 

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

[как сделать простой каталог на php]материал подготовил: Дмитрий Турецкий
06.05.2004
 

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

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

Как ни смешно, но сделать это совсем не сложно. Все, что потребуется – это добавить на страницу списка товаров форму и элементы управления для выбора нужных товаров. Например, создадим страницу 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>, то получится очень удобный инструмент, позволяющий быстро разобраться в преимуществах и недостатках интересующих предметов. Разумеется, можно и еще много чего придумать – дело за вами.

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

Можно делать и многуровневые выборки

Первоисточник – www.hostinfo.ru

Total
0
Shares
Телеграфировать 0
Поделиться 0
Репост 0
Твитнуть 0
Алексей Волков

Предыдущий материал
  • PHP

Навигация по сайту

  • 29.04.2004
  • Алексей Волков
Read More
Следующий материал
  • Управление и организация бизнеса

Дешевой нефти больше не будет?

  • 09.05.2004
  • Алексей Волков
Read More
Вас также может заинтересовать
Read More
  • Codeigniter

Создание собственного обработчика 404 ошибок в CodeIgniter

  • jokar
  • 07.10.2012
Read More
  • PHP
  • Готовые скрипты

Загрузка нескольких файлов одним браузером

  • jokar
  • 14.06.2010
Read More
  • PHP

Переход на шаблонный дизайн

  • Алексей Волков
  • 10.02.2006
Read More
  • PHP

Экстремальный стиль для PHP

  • Алексей Волков
  • 29.12.2005
Read More
  • PHP

Секреты PHP-функций для работы с массивами. Обработка данных и сортиров

  • Алексей Волков
  • 15.11.2005
Read More
  • PHP

Секреты PHP-функций для работы с массивами. Создание массивов

  • Алексей Волков
  • 31.08.2005
Read More
  • PHP

PHP: секреты файла php.ini. Часть 4

  • Алексей Волков
  • 04.08.2005
Read More
  • PHP

PHP: секреты файла php.ini. Часть 3

  • Алексей Волков
  • 29.07.2005

Добавить комментарий

Для отправки комментария вам необходимо авторизоваться.

Свежие посты
  • Рассылка как продукт
    • 24.07.20
  • Google назвал лучшие приложения App Store за 2018 год
    • 14.12.18
  • Онлайн-конференция интернет-магазин от “А до Я” CyberE-com 2018
    • 25.05.18
  • Бесплатная онлайн-конференция по управлению репутацией
    • 04.12.17
  • Открыта регистрация на CyberMarketing-2017
    • 19.10.17
Маркетер
  • О проекте
  • Информационное спонсорство
  • Рекламным агентствам
  • Ссылки
(с) ООО "Маркетер". Официальный сайт. Маркетер: Статьи про рекламу, маркетинг, public relations, интернет

Введите ключевые слова для поиска и нажмите Enter