Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программируем на PHP - вопросы и ответы.


Информационный Канал Subscribe.Ru

Здравствуйте! Выпуск номер 49
рассылки сайта РНР для всех!

Вы получили этот выпуск рассылки, так как являетесь подписчиком рассылок сайта http://subscribe.ru Рассылка выходит еженедельно, и предлагает Вам авторские материалы по теме программирования на скриптовом языке гипертекстового препроцессора РНР. Кроме того - есть система вопросов и ответов, обмен ссылками и баннерами, раздел Ваши письма и многое другое.
Форум сайта
Архив рассылки

заказать книги по РНР  
(только Беларусь)

Как сделать Интернет-магазин

Начало в предыдущем номере. Всю статью можно прочитать тут:
http://virtual.bresttelecom.by/php/php/spis/index.phtml

Мы подошли к очень интересной теме – виртуальная корзина. Не сомневаюсь, на очень многих сайтах Вы пробовали заказать выложенный там товар, и на всех работа корзины была реализована по-разному. Что надо стандартному посетителю от Интернет-магазина? Правильно, купить товар. А что ему для этого требуется? Удобная навигация, легкий и быстрый доступ к товарам, возможность изменить количество одного наименования товара в корзине, возможность удалить товар из корзины, информация о товаре (данные, параметры, фотография, наконец – цена!). Это – необходимый минимум – увеличение доступных функций отрицательно сказывается на быстродействии и существенно усложняет программу. Но – этого более чем достаточно для нас.

Итак, как можно хранить товары в корзине покупателя? Можно попросить его (покупателя, конечно) зарегистрироваться в системе, но для этого надо быть уверенным в необходимости нашего товара для покупателя. Чаще это не так :-). А поэтому не усложняйте жизни своим клиентам различного рода регистрациями. Подумайте – как относитесь к ним Вы сами, часто ли хочется оставлять свои данные на сомнительных :-) сайтах? Вот именно, очень не хочется. А значит, надо иметь очень веские причины, что бы ввести регистрацию. Такими причинами могут быть: наличие постоянного круга покупателей, ходовой товар… Впрочем, это уже не относится к теме статьи. Сделайте свой выбор сами. Только имейте ввиду – регистрацию тоже придется разрабатывать самому.

А мы же не будем останавливаться на регистрации, так как она в принципе ничего не меняет. Все равно Вам никуда не уйти от cookie… Ну вот, уже слышу :-) массу голосов с не очень лестными отзывами, типа «Опять, а мы то думали…». Да, и еще раз да! Давайте, я попробую привести ряд аргументов за использование этой технологии, а Вы решите сами – прав я или нет.

Что бы сделать это, нужно рассмотреть преимущества и недостатки нескольких конкурирующих технологий. Что можно противопоставить cookie? Из того, что попроще - Java script и сессии. Давайте рассмотрим все три по порядку.

Cookie – небольшие файлы, записываемые на Вашем компьютере сервером. Все браузеры поддерживают работу с ними, и поверьте – в этой технологии больше ограничений, чем возможностей. Например, нельзя записать в один cookie больше 4 килобайт данных, нельзя обратиться к чужому cookie, только к своему (созданному своим сервером), нельзя записать cookie куда либо в другое место, кроме как в отведенное пользователем. Нельзя, нельзя, нельзя… Конечно, все это при условии того, что Вы следите за безопасностью собственного компьютера и устанавливаете самое современное программное обеспечение. Кстати, практически во всех браузерах сookie по умолчанию включены, и если Вы смогли их выключить – сможете и включить. Сделать это можно в настройках программы-браузера. Очень большое количество сайтов использует в своей работе cookie, а часть из них просто не пустит Вас к себе без включенной их поддержки в браузере. Хорошо это или плохо – это так. Есть специальные программы – брандмауэры, отсекающие cookie или отказывающие сайту в доступе, так что выбор все равно остается за посетителем. Но – среднестатистический пользователь компьютера не отключает cookie, а для продвинутых стоит написать предупреждение на сайте.

Дальше – Java Script. Эта технология тоже достаточно распространена, но... Есть версии популярных браузеров, которые не поддерживают работу Java Script. Например – версии Opera. Правда, это не тот недостаток, на котором мне хотелось бы сделать акцент. Java Script технология клиентская, а это значит, что текст программы - скрипта надо передать браузеру. Само собой – увеличение времени загрузки и замедление работы программы Вам гарантировано. А плюс сюда еще требовательность к ресурсам компьютера, и мы получаем гремучую смесь. А ведь своего клиента надо уважать и немножко даже любить – как никак он платит нам за нашу работу. Так зачем же усложнять ему путь по сайту? Впрочем, есть тут и достоинства – если сервер не поддерживает программирование на своей стороне, остается воспользоваться только Java Script.

Сессии. Очень эффективный механизм, встроенный во многие современные языки программирования. Присутствует, например, в PHP версии 4.0 и выше. Позволяет передавать переменные от одного окна браузера к другому без их потери и без передачи методами POST или GET. Это на пальцах. В действительности – использует в своей работе уникальные идентификаторы, которые хранятся в тех же файлах cookie, так что нового в принципе ничего не несет, разве что повышается удобство работы… Если только знать как этим пользоваться :-) Само собой – требует поддержки cookie от браузера.

Вот они, конкуренты. На самом деле – выбор стоит между двумя: cookie или Java Script. Второе стоит выбирать только в случае, если Ваш хостинг не поддерживает программирование на стороне сервера ни на одном из языков. Это – практически все бесплатные службы хостинга. А на первом стоит останавливаться во всех других случаях, когда есть возможность отдать основную работу по обработке серверу. Впрочем, Ваш Java Script тоже будет работать с cookie, иначе оборвавшаяся так некстати связь с Интернетом лишит посетителя с трудом набитого в корзину товара. Второй раз он (посетитель магазина) может этого и не сделать. Если используются cookie – вся корзина остается нетронутой, ведь она записана на компьютере клиента. Как видите, круг замкнулся, нам все равно от них никуда не деться :-) Итак – решение о выборе технологии зависит от возможностей хостинга.

Мы, как прогрессивные программисты, остановимся на cookie. Тем более, что у нас есть РНР, а в нем очень просто устанавливать, удалять и считывать cookie. На практике это будет выглядеть так:

isset ($name); - прочитать установленный cookie с именем name;
$y = mktime (12, 50, 0, 12, 12, 2005); - установить время, до которого хранить cookie;
setcookie("name", $data, $y); - записать в cookie с именем name переменную $data;
setcookie("name); - удалить cookie с именем name;

Вот и все, что нам понадобится для работы со страшными cookie.

Раз технология выбрана – давайте применим ее на деле! Прайс у нас, если Вы помните, хранится в текстовом файле. Блок выборки данных оттуда есть. Осталось решить, что именно хранить в cookie. Можно – всю информацию о товаре, а можно только цифровой идентификатор и количество. Конкретный выбор надо сделать исходя из реальных условий. По принципу – что проще. Только надо учитывать, что цифровой идентификатор занимает не очень много места в памяти, но с ним больше хлопот в смысле программирования. Придется делать блок сопоставления идентификатора и выборки информации из файла прайса. Тут есть и еще один момент. Если прайс часто меняется, соответственно информация в корзине покупателя может быстро устареть и не соответствовать действительности. Значит, стоит подумать о контроле даты. Дату, когда посетитель положил товар в корзину, тоже придется хранить в cookie, так как больше негде. Если даты сильно различаются – стоит предупредить покупателя о несоответствии. Иначе могут произойти досадные казусы. Неприятно, когда заказ делается по недельной давности цене. Она ведь может не только упасть, но и увеличиться! Потом придется объясняться… Так что лучше позаботиться о таких вещах заранее. Хотя, если прайс более-менее постоянный, беспокоиться на стоит.

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

$file = “price.txt”; // кстати, расширение файла может быть любым
$as = file ( $file );

И обратиться к строке массива с нужным индексом:
$info = $as[$id];

$id – идентификатор, который нам нужен. Правда, применяя данный метод, нам не избежать контроля дат, но это не так уж и плохо.

Вместе с идентификатором товара надо запоминать и количество товара. Соответственно, при первом заказе вводится число 1. Дальше желательно предоставить возможность произвольно (в ограниченных, конечно, рамках) менять это число. Для пересчета суммы понадобится кнопка, если она будет первой после формы – сработает и нажатие на клавишу Enter. Очень удобно – ввел новое количество товара и нажал Enter для пересчета.

Кроме того, в корзине обязательно надо предусмотреть возможность заказать еще товар и окончательно оформить товар. Это можно сделать и кнопками, и ссылками – что удобнее для навигации. Никаких параметров передаваться тут не будет.

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

Наконец… Оформление. Стандартные поля – имя, адрес, телефон, почтовый ящик и т.д. Кому что надо. Чем меньше, кстати, тем лучше. Обязательно должно быть поле «примечания» - оставьте клиенту возможность высказать свои пожелания. Тут же должна присутствовать вся информация о заказанном товаре и о его стоимости. Самая главная кнопку – «ЗАКАЗАТЬ». Если нет регистрации, можно введенные данные запомнить (а для чего мы говорили столько о cookie?) и при следующем заказе просто подставить. Клиент будет благодарен, поверьте.

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

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

Очень актуальным является момент своевременности обработки заказов. Я Вам подскажу очень хороший и, кстати, современный метод, позволяющий практически мгновенно узнавать о заказе. И это без необходимости постоянно сидеть в Интернете и даже выходить в него раз в день. Удивлены? А на самом деле все просто. Нам понадобится простой… пейджер. Практически все операторы предоставляют возможность отправить электронное сообщение на свой пейджер из Интернета. Как правило, адрес для отправки выглядит так: номер_пейджера@адрес.оператора. Или приблизительно так. Если на этот адрес отправить письмо, оно придет на Ваш пейджер. А из PHP, например, очень просто отправлять электронные сообщения на почтовые ящики. Идея ясна, надеюсь? Кстати, неплохим вариантом может быть SMS на сотовый телефон, но надо уточнять у оператора, поддерживает ли их сеть такую возможность. Например, Белорусский VELCOM пока еще нет.

Как видите, на заказ можно отреагировать практически сразу, как только онпоступит. Это повышает доверие клиентов к магазину и положительно сказывается на репутации. Вот, как мне кажется, и все для начала.

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

Если Вам пришлись по сердцу идеи, изложенные в данной статье, Вы можете оценить работу описываемого здесь Интернет-магазина по адресу http://204040.com Может быть, даже что-нибудь купите :-) Еще раз хочется напомнить – статья ориентирована в первую очередь на то, что бы дать начальную информацию о технологиях, применяемых в Интернет-магазинах. Тот или иной описанный здесь блок может быть реализован по-другому. Исследуйте, экспериментируйте, творите… Успехов Вам в бизнесе!



Андрей Кухарчик
http://virtual.bresttelecom.by
virtualbrest@tut.by
Интернет магазин, описываемый в данной статье, можно посмотреть тут: http://204040.com


Вопросы и ответы
задать вопрос c сайта

Предлагаю Вам задать вопросы на форуме сайта рассылки. Вопрос должен быть кратким, точным и по теме. Ответы на вопросы по мере знаний будут даваться мной, а если я не смогу дать Вам исчерпывающий ответ - кто-то из подписчиков обязательно поможет. А если Вы знаете ответ на заданный вопрос - не поленитесь ответить. Этим Вы очень поможете кому-то решить свою проблему. Синтаксис и грамматика - авторские.

Задайте свой вопрос

Ваше имя или ник:

Краткая тема Вашего вопроса:

Ваш электронный адрес:

Вопрос полностью:

В форуме разрешается использовать теги и перевод строки только в поле для ввода текста вопроса. Любые проблемы функционирования и работы форума можно обсудить здесь. Максимально количество символов в поле текста вопроса- 1000.


Обмен ссылками и баннерами

Предлагаю Вам стать участниками баннерообмена. Ваши ссылки и описания Ваших сайтов вы можете присылать по адресу рассылки - virtualphp@tut.by Все ссылки обязательно появятся в этой рассылке. Вам надо будет разместить у себя код баннера сайта рассылки, и только на главной страничке Вашего сайта.

Взять код моего баннера можно этот:  

<a href="http://virtual.bresttelecom.by/php/"><IMG SRC="http://virtual.bresttelecom.by/baner/8831.phtml"
alt="Виртуальный Брест" width="88" height="31" border="0"></a>

... для начала. Позже я вышлю Вам другой.

Наши друзья

http://virtual.bresttelecom.by - Виртуальный Брест. Региональный информационно - развлекательный портал города Бреста. Чат, форум, статьи, услуги, объявления, недвижимость, каталог сайтов - это и многое другое ждет Вас на страницах сайта.
http://price.bresttelecom.by - сайт прайсов фирм города Бреста. Поиск, подсчет, реклама и т.д.
http://204040.com - Интернет-магазин компьютерного салона Успех г. Брест
http://tweak.tut.by - http://tweak.bresttelecom.by - Оптимизация и настройка компьютера. Если Вас интересуют различные аспекты настройки Вашего мегагерцевого друга, Вам надо посетить сайт посвященный настройке и оптимизации. Кроме того - список последних версий популярных программ и свежие новости, а так же чат, форум и многое другое!
http://sos.dax.ru - Проект "SOS: Помощь пользователю". На сайте вы найдете множество статей, советов по компьютеру. Всегда свежий софт. А также вы сможете задать вопрос и получить на него моментальный ответ. Если вам нужна помощь - мы поможем вам!
http://www.uvd.tula.ru - сайт криминальной милиции УВД Тульской области.

http://myvote.hut.ru - MyVote - голосование на Вашем сайте.Сервис для всех вебмастеров, которые хотят сделать свой сайт более интерактивным. Позволяет организовать опрос мнения пользователей на любом сервере.
http://www.sura.ru/maxwell Математика, Алгоритмы, Программирование. На сайте можно найти описания различных алгоритмов и методов, относящихся к различным математическим (и не только) дисциплинам.
http://babylon1.narod.ru - это разделы посвящённые созданию и раскрутке сайта, созданию эффективного баннера, интересным эффектам на java-скриптах, php-скриптах и cgi-скриптах. А также здесь Вы найдёте программы для ускорения интернета, памяти, компьютера, системы, Windows и многое другое интересное и полезное, что Вас, надеюсь, заинтересует.
http://bfg.com.ru/ - Сайт рассказывает о лучших бесплатных играх интернета - Moorhuhn, Vampirejagd, Tux Racer, Catch the Sperm, а также есть коллекция онлайн игр и обоев.
ния, мировые новости, компьютерная безопасность, скрытые возможности программ и ОС, раскрутка сайтов и многое многое другое!
http://www.zanaveski.km.ru - Сайт для людей, увлеченных компьютерной графикой: статьи по популярным программам работы с изображениями и анимацией, по теории компьютерной графики, графическим форматам и цветовым моделям.
http://moneymake.by.ru Система поиска сайтов халявного заработка. Здесь Вы найдете множество сайтов-спонсоров, которые платят деньги за различные действия со стороны пользователей (чтение рекламы, посещение сайтов, регистрации, показы баннеров и др.)
http://www.startdelo.narod.ru/ Предложения и советы по организации Своего Дела. Сайт содержит предложения по простейшим делам, для реализации которых требуются минимальные начальные затраты.
http://robertru.chat.ru
Письма читателей о своих болезнях и о способах их лечения. Фото девушек. Анекдоты. Медицина. Физиология половой жизни человека (статья проффесора медицины)
http://gamemaker.onego.ru
- создание игр на движке Game Maker


Сайты в тему

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

http://www.php.net/ - официальный сайт РНР. Масса информации, но только для тех, кто дружит с английским.
http://www.php-encoder.f2s.com - защита РНР скриптов UPDATED.
http://phpclub.net - Архив бесплатных PHP-приложений (вкл. E-commerce), форумы, чаты, рассылки, книги, обучение, хостинг.
http://www.devshed.com/Server_Side/PHP/ интересные статьи по PHP и не только.
http://ancient.dax.ru На сайте много готовых решений на PHP: форумы, чаты, гостевые книги и многое другое. Кроме того сам сайт реализован на php.
http://detail.phpclub.net/ - как обычно, о РНР.
http://open.appideas.com/   сборник скриптов
http://programmingpub.com/scripts.html   скрипты на perl,php,python,tcl
http://px.sklar.com   php сборник скриптов
http://phplib.netuse.de   Здесь можно найти самую матёрую библиотеку на php(не отдельные скрипты, а цельное пособие по разработке), только не спешите подписываться на рассылки (авторы думают что все в мире должны знать немецкий
http://php.resourceindex.com/   коллекция скриптов
http://phpwizard.net   Tobias Ratschiller ничего не говорит?
http://www.umnik.f2s.com/ содержит информацию для вебмастера (по всем актуальным языкам веб-программирования), установка домашнего сервера Apache (разных версий)+MySQL+PHP+Perl. Также можно подписаться на рассылки "Вопросы и ответы по ОС" и "Будь достойным вебмастера". Имеются множество советов по компьютеру...
www.phpbuilder.com Здесь есть все! Форум, статьи, мануал, скрипты, да и вообще очень много профессионалов, тусующихся на сайте.
http://phpclasses.upperdesign.com/ Там находится масса классов на php, имеется рассылка на английском языке, регистрация бесплатная.
http://www.sourceforge.com - Вот IMHO очень полезный сайт. И не только для PHP-программистов, но и для всех остальных. Там десятки тысяч готовых примеров.

Где можно посмотреть

А и правда. РНР, да РНР! А где посмотреть как все это работает и оценить, стоит или нет заниматься этим... Правильное решение будет таким. Посетите сайты, указанные ниже, и посмотрите как они работают. Кстати, если хотите продемонстрировать всем свой проект или то, чего Вы достигли изучая РНР, присылайте ссылку и описание, и все это будет размещено здесь. Только не забудьте поставить у себя наш баннер, и обязательно на главной страничке.

http://virtual.bresttelecom.by - Виртуальный Брест. На РНР работают чат, форум, гостевая, объявления, статистика посещений, обмен компакт дисков, анекдоты.
http://204040.com - Компьютерный салон Успех - Интернет-магазин, прайс процессор, управление рассылками и все это работает на РНР и только на РНР.
http://www.uvd.tula.ru - сайт УВД Тульской области.
http://www.andrey.nnov.ru "Сайт Андрея Зайчикова" - Поможет начинающим программистам стать профессионалами. Алгоритмы, статьи, книги, faq и многое другое.


Подпишитесь на рассылки!
 

Рассылки Subscribe.Ru
Программируем на PHP - вопросы и ответы
Новости сайта Виртуальный Брест
Оптимизация и настройка компьютера
SOS:Помощь пользователю Интернета
Вэб-строительство Профессионалам
Кроссворды от К.Ермакова
JavaScript и PHP
BigMoney$
Dummpy Daily eTips
Аббревиатуры и термины в компьютерном мире
Чем отличается СПАМ от E-MAIl маркетинга, как защитить свою почту, хитрости почтовых хулиганов
Лучшие ФОТО! Каждый день новые!
Тяжелая музыка от А до Я

Здесь будет публиковаться список рассылок, рекомендуемых к подписке.

Если у Вас есть рассылка - предлагаю Вам обменяться подобной формочкой для подписчиков. Достаточно прислать мне код рассылки и ее название.

Ваша рассылка должна иметь достаточно много подписчиков, не менее 1000, иначе согласитесь, будет немного несправедливо :-)



автор рассылки Андрей Кухарчик / http://virtual.bresttelecom.by/php



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное