Уроки:


  
HTML
  
  
CSS
  
  
PHP
  
  
JavaScript
  
  
jQuery
  
  
PHP+MySQL
  
  
Ajax
  

  Разделы:


  В помощь:


  Ещё:



  Авторизация:


  логин:   
  пароль: 
Говорят, что перед смертью админ вспоминает все свои пароли.

  Тренажер интуиции:


Тренажер интуиции


  Видеокурсы:


Бесплатный видеокурс: "Cайт-визитка за 1 день"

видеокурс: Сайт-визитка за один день



  Опрос:



  Топ комментаторов:


40

— Алло! Служба поддержки? Вы не знаете, почему у меня изображение на мониторе дрожжит, когда я грызу сухари?

  Моя группа в контакте:



Необходимые файлы и таблицы для создания интернет корзины

Итак, давайте сделаем небольшой интернет магазин, в котором будем продавать копии картин известных художников.

Открываем текстовый редактор и создаем пять файлов с расширением (php)

1. magazin.php - Главная страница.

2. product.php - страница с товаром.

3. zapisi_tovara.php - файл, который записывает выбранный товар в базу даных.

4. corzina.php - страница, где будут отображаться выбранные товары.

5. final.php - отправляет на вашу почту данные о покупке и дополнительные данные о покупателе.

Создаем папку с именем «foto» где будут, хранятся фото наших товаров.

Далее нам понадобятся три таблицы в базе данных с именем «cortini» которую нужно создать с помощью «phpMyAdmin» (как создать базу данных с таблицами я написал здесь) который входит в комплектацию «денвера» а открывается он следующим образом:
вводим в адресную строку браузера эту строку - http://localhost/tools/phpmyadmin

Имена таблиц:

1. posetiteli - таблица, где хранятся данные счетчика посетителей, так как его значение никогда не повторяется, то мы смело можем привязать его к посетителю, то есть: 1234-ый посетитель будет иметь «талон» с номером «1234».

2. tovari - таблица, где хранятся данные о всех товарах нашего магазина.

3. vibranie_tovari - таблица, куда будут записываться товары, которые выбрали наши покупатели.

Скачать архив с таблицами, файлами и папкой с изображениями вы можете в разделе программы.

И так давайте разберем каждый файл отдельно.

Файл: «magazin.php»
<?php
header('Content-Type: text/html; charset=utf-8');
setlocale(LC_ALL, 'ru_RU.65001', 'rus_RUS.65001', 'Russian_Russia. 65001', 'russian');

session_start();

if (isset($_SESSION['talon']) == "" )
   {
$conn = mysql_connect("localhost", "Имя пользователя", "Пароль пользователя") or die ("Could not connect: " . mysql_error()); 
 mysql_select_db("cortini", $conn); 
$result = mysql_query("SELECT counter FROM posetiteli", $conn);
if (!$result) {echo "zapros na viborcu ne proshol."; mysql_error();}
$x = mysql_fetch_array($result);

   $_SESSION['talon'] = $x["counter"]+1;

$result = mysql_query("UPDATE posetiteli SET counter = counter + 1", $conn);
if (!$result) {echo "zapros na viborcu ne proshol."; mysql_error();}

mysql_close($conn);
}
   ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>интернет магазин</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="keywords" content="интернет, магазин, картины, прдаем, продажа, картин">
<meta name="description" content="интернет магазин">
</head>
<body>

<div style="position:absolute; top:0px; height:100px; left:0px; width:1000px; border: 1px solid blue;">
<h1 align="center">Шапка сайта</h1>
</div>

<div style="position:absolute; top:100px; height:400px; left:0px; width:200px; border: 1px solid blue;">
<h1 align="center">Меню №1</h1>
</div>

<div style="position:absolute; top:100px; height:400px; left:800px; width:200px; border: 1px solid blue;">
<h1 align="center">Меню №2</h1>
</div>

<div style="position:absolute; top:100px; height:400px; left:200px; width:600px; border: 1px solid blue;">
<h1 align="center"><a href="product.php">Наши товары.</a></h1>

<h3 align="center"><?php echo "Вы являетесь: ".$_SESSION['talon']." посетителем! <br/>Номер Вашей покупки: ".$_SESSION['talon']?></h3>

</div>

<div style="position:absolute; top:500px; height:100px; left:0px; width:1000px; border: 1px solid blue;">
<h1 align="center">Подвал сайта</h1> 
</div>

</body>
</html>
посмотреть

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

Для этого нужно создать «глобальную переменную» так называемую «сессию» с именем «talon», в которой, будет храниться значение, в нашем случае значение будет «показания счетчика».

И так, если вы заходите впервые на эту страницу, то естественно сессия с именем «talon» ($_SESSION['talon']) будет пустой. В этом случае срабатывает запрос к таблице «posetiteli», извлекается из нее число посетителей, и прибавляется к нему «1» (так как Вы новый посетитель) и получившейся результат записывается в $_SESSION['talon'], после чего меняем данные самого счетчика (то есть, прибавляем «1»). Эта сессия будет, привязана к Вам все время пока вы находитесь на сайте даже после выхода, она сохраняется на некоторое время.

Если вы перезагрузите страницу, то код счетчика проверит если $_SESSION['talon'] имеет значение, то он не сработает и не запишет Вас как нового пользователя.

Давайте рассмотрим код счетчика:

Первые две строчки указывают браузеру, в какой кодировке написан данный файл.

session_start(); - запускаем сессии.

if (isset($_SESSION['talon']) == "" ) - проверяем если сессия с именем «talon» пустая, то выполняем действия, которые записаны в фигурных скобках {}, если нет, то пропускаем фигурные скобки и идем дальше.

$conn = mysql_connect("localhost", "Имя пользователя", "Пароль пользователя") or die ("Could not connect: " . mysql_error());
mysql_select_db("cortini", $conn);
- устанавливаем соединение с нашей базой данных, в нашем случае база данных с именем «cortini», также обратите внимание на "Имя пользователя" и "Пароль пользователя" здесь необходимо вставить то имя которое вы указали при создании базы данных, то есть того кто имеет право доступа к этой базе, и пароль соответственно.

$result = mysql_query("SELECT counter FROM posetiteli", $conn); - здесь мы формируем переменную «$result» с конкретным запросом к одной из таблиц, в данном случае мы хотим выбрать(SELECT) поле с именем «counter» из (FROM) таблицы с именем «posetiteli», если запрос прошел успешно то формируется переменная «$result»

if (!$result) {echo "zapros na viborcu ne proshol."; mysql_error();}- проверяем если не сформировалась переменная «$result» то выводим на экран текст "zapros na viborcu ne proshol." И ищем наши ошибки.

$x = mysql_fetch_array($result); - в переменную «$x» записываем результат работы переменной «$result»

$_SESSION['talon'] = $x["counter"]+1; - заносим в сессию «talon» значение «$x» которую взяли из поле «counter» и прибавляем единицу.

$result = mysql_query("UPDATE posetiteli SET counter = counter + 1", $conn); - меняем (UPDATE) в таблице «posetiteli» значение поле «counter» на то же самое значение плюс один, то есть вы.

mysql_close($conn); - закрываем соединение с базой данных.

<h3 align="center"><?php echo "Вы являетесь: ".$_SESSION['talon']." посетителем! <br/>Номер Вашей покупки: ".$_SESSION['talon']?></h3> - выводим на экран сессию «talon» это скорее проверка работоспособность нашего кода, чем необходимость.

С html кодом вы должны быть уже знакомы.

1 2 3 4 5

Комментарии


подскажите как быть с бд, я импортировал Ваши файлы, но страница index.php не открывается, пишет: Warning: mysql_connect() [function.mysql-connect]: Access denied for user *root***localhost* (using password: YES) in Z:*home*localhost*www*index.php on line 9 Could not connect: Access denied for user *root***localhost* (using password: YES) Как я понимаю что-то не так с именем и паролем у бд, как это исправить?
2013-11-05 17:08
Друзья! Пожалуйста, задавайте свои вопросы на форуме!

*FerrisBuller* В файле «bd.php» укажите свой логин и пароль администратора базы данных (логин в место «Имя пользователя» а
пароль вместо «Пароль пользователя»)
2013-11-05 17:58
Игорь
Здравствуйте!
Не могу ни как написать код графической корзины . Мини-корзина в углу. Опишите пожалуйста как ее сделать!
2013-12-15 14:17
Игорь, мини-корзина в углу - это, по сути, та-же самая корзина, только не в отдельном файле а в блоке на нужных Вам страницах (для удобства подключаются "инклуд-ом" ). Чтобы товары добавлялись не перезагружая страницу нужно использовать "Ajax".

Не совсем понял, что такое "графическая корзина".
2013-12-15 16:24
Сергей
Здравствуйте. Подскажите такой момент. Товар в корзину добавляется, но переход на product.php не происходит, пишет:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:homeRODNIKUT.BYwwwpageszapisi_tovara.php:3) in Z:homeRODNIKUT.BYwwwpageszapisi_tovara.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at Z:homeRODNIKUT.BYwwwpageszapisi_tovara.php:3) in Z:homeRODNIKUT.BYwwwpageszapisi_tovara.php on line 34
Что может быть не так?
Спасибо.
2014-02-03 19:19
Сергей
Вы знаете, разобрался. Оказывается  <?php начинался не с нулевой строки.
Ну да ладно, есть еще проблема. Если два раза добавить из каталога один и тот же товар, то он прописывается в корзине не одной позицией с количеством = 2шт, а  двумя позициями и в каждой по одной штуке. Как это можно поправить? Спасибо.
2014-02-03 20:28
Если Вы не редактировали файл "zapisi_tovara.php" то всё должно работать правильно.
Но судя по всему, Вы его редактировали... Поэтому, трудно делать какие-то выводы, не видя самого кода который отвечает за запись и обновления таблицы с покупками.
Можете прислать код Вашего файла через форму, в разделе "Обратная связь", я посмотрю...
2014-02-03 20:37
liz
подскажите-"Имя пользователя" и "Пароль пользователя" здесь необходимо вставить то имя которое вы указали при создании базы данных, то есть того кто имеет право доступа к этой базе, и пароль соответственно.

может я не помню но я не вводила имён и паролей где взять эти данные
2014-02-15 00:36
Зайдите в панель управления БД "phpmyadmin" выберите из списка ту базу данных которой хотите установить доступ по паролю, и в верхнем правом углу найдите вкладку "Privileges", нажав на неё, появится таблица с пользователями которым разрешен доступ к ней.
Дальше можно пойти двумя путями:

1) В низу можно нажать на ссылку "Add a new User" что переводится как "Добавить нового пользователя" дальше нужно-будет указать его имя, пароль и выбрать привилегии для этого пользователя, то есть отметить галочкой те действия которые может совершать этот пользователь (запись, чтение, удаление и т. д. и т. п.).

2) Выбрать из существующего списка одного пользователя и отредактировать, сменить пароль и привилегия (можно выбрать все пункты), далее запоминаем его имя и пароль и вписываем их в файл который подключает нашу БД.
2014-02-15 01:20

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



Почта: info@web-shpargalka.ru
Сообщить друзьям:
Главная | Форум | Отзывы | Обо мне | Мои курсы | Работы учеников | Конкурсы | Обратная связь