Главная » Мережеві технології » Пошта i Skype » Як написати інтернет магазин на php. Как написати інтернет магазин на php

Як написати інтернет магазин на php. Как написати інтернет магазин на php

Як написати інтернет магазин на php. Как написати інтернет магазин на php

PHP: найпростіший Інтернет-магазин

За допомогою PHP можна легко зробити міні-Інтернет-магазин - т. І. Встановити на сайт форму замовлення, яка буде відправлятися вам по електронній пошті. При цьому поштова програма відвідувача ис-користуватися не буде - йому навіть необов'язково взагалі її мати.

Наприклад, такий "магазин" зроблений на сторінці http: // www. harchikov. ru / cass. php (рис.5.1). У цьому розділі розповідається про його пристрої.

Рис.5.1. Реально діючий Інтернет-магазин,

Побудований за описаною в цьому розділі схемою.

Завдання

Що, власне, повинен робити Інтернет-магазин? Мабуть, таке:

  • - Надавати відвідувачеві можливість оглянути асортимент товарів;
  • - Дозволити відвідувачеві абияк відзначити потрібні товари;
  • - Прийняти у відвідувача його контактні дані;
  • - Передати власнику магазину список замовлених товарів і кон-тактний дані відвідувача. Причому досить бажано

Крім того, дуже бажано надати відвідувачеві щось подібне до "міні-калькулятора", який би автоматично підраховував суму замовлення і відображав би її на web-сторінці - щоб відвідувач мав розраховувати замовлення, виходячи зі своїх фінансові можливості.

Власне, на перших порах цього і досить.

Проект

З яких же компонентів web-магазин повинен бути зроблений?

Відобразити асортимент з пари десятків товарів можна на одній web-сторінці. На ній же можна розмістити "калькулятор" і форму введення контактних даних.

Розділ сторінки, що відноситься до одного товару, повинен бути забезпечений чимось, що могло б дозволити відвідувачеві абияк цей товар відзначити. Для останнього найкраще використовувати випадаю-ного списку (рис.5.2 - на зразок того, в якому встановлюється розмір шрифту в Word): він заодно дає відвідувачеві можливість ви-брати і кількість товару для замовлення. На HTML для відображення та-кого списку необхідно використовувати елемент <select name = "ім'я це-го елемента форми">, усередині якого розміщені теги <option. >, В яких і вказані ті значення, що в меню відображаються. При від-правки форми сторінці-обробнику сценарієм на ній передається пе-ремінна з ім'ям, рівним імені елемента <select...> і значенням, що дорівнює кількості з параметра value того тега <option...>, який був відвідувачем обраний.

Як написати інтернет магазин на php. Как написати інтернет магазин на php

Рис.5.2. Випадаюче меню.

Скажімо, список на рис.5.2 може відображатися, наприклад, кодом

Залежно від того, який пункт списку буде обраний відвідайте-лем, сценарієм-обробника передасться як значення змін-ної $ spis (і елементу масиву $ HTTP_POST_VARS [ 'spis']) то число, яке знаходилося в параметрі value тега <option> паралельним відображенням обраний пункт.

Для введення відвідувачем контактних даних можна використовувати елемент <textarea. >, Що дозволяє поміщати в себе досить довгі фрагменти тексту на кількох рядках (наприклад, нащо-вий адреса), а для введення адреси електронної пошти - елемент типу text (він відображає однорядкове поле для введення тексту), рис.5.3.

Як написати інтернет магазин на php. Как написати інтернет магазин на php

Рис.5.3. Види полів введення тексту.

Форма, в яку відвідувач внесе відомості про своє замовлення і свої контактні дані, повинна бути відправлена ​​власнику сайту. Для цього на сторінці, зазначеної в заголовку форми як її обработ-чик, потрібно розмістити сценарій, який збирає значення всіх елементом тов форми в єдину текстову рядок і відправляє цей рядок на e-mail власника сайту. Останнє зробити можна командою PHP mail ().

Отже, весь Інтернет-магазин буде складатися з двох файлів: віт-Ріни і обробника замовлення. Однак практично всі можливості для торгівлі будуть матися: і список товарів, і можливість вказівки виду і кількості товару, що замовляється.

"Калькулятор", про бажаність якого згадувалося на попе-дущем етапі проектування, можна зробити на Javascript. Програма повинна відстежувати зміни в випадних списках, звірятися зі списком цін і відповідно до даних цього списку виводити посе-ник повідомлення про вартість її замовлення. Висновок повідомлення найкраще зробити за допомогою засобів Dynamic HTML, динамічно изме-ня вміст сторінку.

Вітрина

Отже, ось основне, що має бути першій сторінці Інтер-нет-магазину. Весь дизайн, все оформлення залишається на ваше собст-дарське розсуд - важливо лише, щоб на сторінці присутні перераховані нижче елементи.

У верхній частині сторінки після тега <body>, але до будь-яких описів товарів, повинен знаходитися заголовок форми:

Припустимо, що PHP-програма, обробна форму, знаходиться в файлі zakaz. php (і саме на цю сторінку відбудеться перехід по-сле натискання кнопки типу submit в формі). Не забудьте вказати пара-метр name в заголовку форми - він потім стане в нагоді для використан-ня в коді калькулятора вартістю замовлення.

(До речі, зверніть увагу, що так як для передачі даних форми використовується метод POST, а не GET, то при цьому в адресному рядку дані полів форми відображатися не будуть.)

Ну, а всередині форми слід розташувати коди випадають спи-сков - по одному на кожен товар (рис.5.4). Як значення па-раметрів name найзручніше використовувати невеликі буквосочета-ня - коди товарів:

Зверніть увагу, що першою за рахунком в випадаючому списку повинно стояти значення 0 - саме воно буде відображатися по благаючи-чанію.

Як написати інтернет магазин на php. Как написати інтернет магазин на php

Рис.5.4. Реальний Інтернет-магазин.

Поля замовлення кількості товару.

Також в формі повинні бути присутніми поля введення контактної інформації - див. На рис.5.1. Скажімо, текстовий рядок типу text з име-ньому e-mail - для адреси електронної пошти і поле введення тексту tex-tarea з ім'ям contact - для введення контактних даних (що вважатиме за потрібне покупець - ім'я, телефон, домашня адреса).

(У параметрі cols тега textarea вказується кількість символів, яке повинно міститися в один рядок в поле введення тексту, в па-раметри rows - кількість рядків тексту, які можна буде вписати в поле вводу до появи смуг прокрутки. Параметр wrap = "virtual" дозволяє автоматичний перенос тексту на наступні рядки в по-ле введення.)

Зрозуміло, в формі повинна бути кнопка її відправки

І закриває тег форми

Відправка заказу

Після оформлення замовлення і натиснення відвідувачем кнопки відправки форми відбудеться перехід на сторінку, вказану в заголовку цієї форми (в даному сценарії - zakaz. Php). Саме в цьому файлі міститься програма відправки замовлення.

При передачі форми сценарієм на PHP вміст кожного елемента переданої форми (для поля введення тексту - введений текст, для елемента <select.> - Значення параметра value обраного пункту <option>) поміщається в змінну, ім'я якої дорівнює значенню параметра name даного елемента (Так відбувається, якщо в файлі php. ini встановлений в on параметр register_globals). Крім того, всі ці значення по-розміщуються в однойменні відповідних значень параметрів name елементи масиву $ HTTP_POST_VARS (якщо форма передана методом POST) або $ HTTP_GET_VARS (якщо форма передана мето-дом GET) (Так відбувається, якщо в файлі php. Ini встановлений в on параметр track_vars) а у PHP версії 4.1 і вище - ще і в масиви $ _POST і $ _GET відповідно. Наприклад, значення елемента <select name = "TOV1"> буде доступно сценаріями на сторінці-обробнику в змінній $ TOV1 і в елементі масиву $ HTTP_POST_VARS [ 'TOV1'] (а в PHP версії 4.1 і старше - ще і в елементі масиву $ _POST [ 'TOV1'].

Однак особливістю використання цих масивів зокрема є те, що для приєднання значення будь-якого їх елемента до будь-якої строкової змінної не можна просто помістити їх усередину тексту рядка - потрібно використовувати оператор додавання рядків: точку. Скажімо, написати

Не можна - треба використовувати формат

Відправлення листа здійснюється командою mail, як ви пам'ятаєте, має формат

Mail ( "Кому", "Тема", "Текст повідомлення",

"Додаткові заго-спритні");

При виконанні даної команди на сервері формується елек-тронне лист відповідно до вказаних параметрів та відправляються ся за допомогою встановленої на сервері поштової програми (Ви можете встановити поштовий сервер і на своєму комп'ютері - використовуйте, наприклад, Office Mail Server Юрія Кучури (доступний з http: // eu3eu. chat. ru) або Courier Mail Server Романа Ругаленко (доступний з http: // courierms. narod. ru)). В як параметр «Кому» може виступати набір адрес, поділу-ленних запитом.

"Додаткові заголовки" можуть бути будь з допустимих поштовими протоколами, розділятися вони повинні комбінацією сім-волів / n, яка в PHP означає новий рядок. Якщо серед "Допол-вих заголовків" не вказано поле From, то воно заповнюється за замовчуванням, наприклад, іменем "Unprivileged User".

Для відправлення листа із замовленням необхідно приготувати його текст. Можна, звичайно, просто включити в лист значення всіх змін-них з іменами, рівними кодам товару (тобто отримані з еле-ментів <select...>), і в кінець додати контактні дані відвідайте-ля. Але куди як краще, щоб власник web-сайту отримував не набір кодів, що він ще повинен за своїми даними переказати в назва-ня, а вже готовий список замовлених відвідувачем товарів (рис.5.5). Для цього в текст сценарію включимо блок визначення повного на-звання товару по його коду.

Як написати інтернет магазин на php. Как написати інтернет магазин на php

Рис.5.5. Лист із замовленням. Зручно читати - зручно виконувати.

Отже, в будь-якому місці файлу-обробника форми, але краще за все на початку, слід помістити наступний сценарій

І такі ж рядки - для кожного товару. Як ім'я пере-ною в умовній частині блоку if ($.> 0) вказується значення параметра name відповідного тега <select. >, А в наступних фігурних дужках - назва того товару, до якого цей тег відно-сілся на сторінці-вітрині. В результаті в тому випадку, якщо відвідай-тель змінив значення будь-якого списку на число, відмінне від нуля, то в змінну $ zak, яка згодом стане текстом листа, що, включається назва товару, відпо-відного цього випадному списку, і відомості про кількість його замовлених одиниць - та величина, яка врешті-решт і виявилася значенням цього списку.

Тепер завершимо складання тексту листа:

І відправимо лист-заявку:

В результаті виконання цієї команди той, хто обробляє за-кази, отримає акуратний список замовлених товарів і відомості про замовника (див. На рис.5.5). Причому якщо відвідувач правильно ввів свій e-mail, то для зв'язку з ним після одержання листа досить натиснути кнопку "Відповісти" або їй подібну в поштовому клієнті - цей e-mail підставляється в заголовок листа From :.

Лист буде відправлено через поштову програму, що знаходить-ся на сервері - програми на комп'ютері відвідувача ніяк не будуть зачеплені.

Сам же файл, в якому розміщений код відправлення листа, може з-тримати, скажімо, подяку відвідувачеві за замовлення (як на сайті www. Harchikov. Ru - рис.5.6) або відомості про те, куди звертатися за інформацією про етап його виконання. HTML-код сторінки просто поміщається слідом за закінченням сценарію на PHP та виводиться в браузер після закінчення роботи сценарію.

Як написати інтернет магазин на php. Как написати інтернет магазин на php

Рис.5.6. Замовлення зроблено - можна йти і чекати.

У наведеному сценарії замість однойменних елементів форми змінних можна використовувати і відповідні елементи мас-Сівов $ HTTP_POST_VARS і (в PHP версії старші 4.1) $ _POST. На-приклад, рядок додавання в текст замовлення нового товару буде вигля-діти як

Рядок генерації листи - як

І команда відправлення листа - змінена за тим же принципом.

Калькулятор

Калькулятор для відображення на сторінці вітрини інформації про суму замовлення зроблений на Javascript. Його текст наводиться нижче. Але, так як книга присвячена PHP, а не Javascript, к його командам дані лише мінімально необхідні коментарі. Просто помістіть код сце-Нарія в тексті web-сторінки, набравши його з клавіатури або отскані-рова сторінки книги.

У розділ <head> сторінки з вітриною слід помістити сценарій:

У наступній сходинці проводиться завдання масиву кодів това-рів, що зустрічаються на web-сторінці і підлягають обліку. У ній повинні бути перераховані всі зустрічаються на сторінці коди те-варів. Порядок перерахування кодів товарів не важливий і не залежить від їх порядку проходження містять їх елементів <select...> на самій сторінці.

В іншій такій самій сходинці перераховуються ціни на ці товари точ-но в тому порядку, в якому перераховувалися коди товарів - на тих самих порядкових місцях повинні стояти код і ціна, що належать одному і тому ж товару.

Сценарій продовжується.

Коротко можна би мовити, що цей сценарій при своєму запуску про-чає значення всіх елементів форм на web-сторінці, що мають перераховані в масиві tov імена (а, як ви пам'ятаєте, в цьому мас-ве перераховані коди товарів: тобто елементи з цими іменами - це відповідні цим товарам випадні списки <select...>), і обчислює суму цих значень (загальне число замовлених товарів) і суму творів цих значень на відповідну кожному ко-ду число з масиву prc - списку цін (т. е. вважає загальну суму по-купки). Отримані значення поміщаються в елементи web-сторінки з ім'ям mess (текстове повідомлення), stoim (вартість замовлення), kolvo (кількість замовлених одиниць товару).

У кожен тег <select. >, Присутній на сторінці і призначе-значення для замовлення товару, додайте команду, яка дозволяє браузеру виконувати сценарій calс при кожній зміні значення елемента, що відображається цим тегом:

У тому місці сторінки, де ви бажаєте відображати відвідувачеві све-дення про замовлення, помістіть рядок з елементом <p> або <div>, що має ідентифікатор mess - той же, що згадувався в сценарії (тут треба використовувати саме параметр id, а не name ):

Де-небудь в формі також поставте два прихованих поля:

За допомогою цих полів в сценарій-обробник будуть передані значення вартості замовлення і кількості замовленого товару. У ре-док власник сайту отримає в листі ще і ці дані.

Щоб останнім сталося, команду, складову частину тексту пись-ма в сценарії на сторінці-обробнику форми, змініть так, щоб вона включала в цей текст і значення змінних з прихованих полів:

Як написати інтернет магазин на php. Как написати інтернет магазин на php

Додавання товару

    Щоб додати до магазин нового товару необхідно:
  • - Вставити на сторінку його опис і тег <select...> з кодом цього товару;
  • - Додати в сценарій-калькулятор нові елементи масивів ко-дів і цін товарів - можна просто в кінець;
  • - Додати в сценарії-обробнику рядок, вставляти в текст листа назву товару відповідно до його коду.

Перспективи

Ось так, дуже просто, ви можете зробити елементарний Інтернет-магазин. Звичайно, невеликий - всього на одній сторінці. Але замовити представлений на цій сторінці товар і відправити замовлення власнику відвідувач зможе.

При роботі з таким Інтернет-магазином відвідувачеві навіть нуж-но бути постійно підключеним до Інтернету під час оформлення замовлення - він спокійно може завантажити сторінку з переліком товарів, відключитися від Мережі, вибрати потрібні пропозиції та заповнити поля форми замовлення, а потім, підключившись знову, це замовлення відправити. Та й саму сторінку зі списком йому необов'язково отримувати саме з Мережі - ви можете відправити її кому-небудь поштою або помістити на компакт-диски, що роздаються друзям або колегам (тільки не за-будьте в цьому випадку вказати в заголовку форми повну адресу стра - ниці з обробником замовлення, а не тільки її ім'я).