X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
> Сессии/Куки, Нужна помощь
Scream_mw
Scream_mw
Topic Starter сообщение 1.3.2010, 20:25; Ответить: Scream_mw
Сообщение #1


Всем доброго времени суток!
Я сейчас изучаю сессии и куки в php, но совершенно не могу понять что к чему... В качестве задачи поставил себе "написать корзину как на www.cocos.com.ua".
Помогите пожалуйста в след. вопросах:
1. Как добавить товар в корзину? на пример файл корзины cart.php и чтоб добавить у нас есть ссылка "cart.php?id=$n" где $n=id товара... Какой код нужен чтоб оно запомнило id этого товара?
2. Как удалить товар из корзини, как очистить корзину?
3. Как "упорядочить" id так чтоб на пример "256|3, 333|1, 888|4" где "id товара|количество"...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
eyexal
eyexal
сообщение 1.3.2010, 21:24; Ответить: eyexal
Сообщение #2


представь что куки это база со стороны клиента, в браузере !
чтоб добавить товар в эту базу надо сделать к примеру так:
setcookie('tovar', '256|3'); - тут мы как бы обозвали переменную tovar и записали в неё значение 256|3, теперь это хранится у клиента в кукисах
когда клиент заходит на сервер то сервер проверяет клиента на наличие кукисов а именно на tovar
по условию если tovar есть тогда надо отделить id от количества,
отделяем ид от кол-ва
$tovar = "256|3";
$tovar = explode("|",$tovar);
echo $tovar[0] - это будет 256
echo $tovar[1] - это будет 3
лезем в базу чтоб выдрать инфу о таваре под id 256
$asd= mysql_query("select * from base where id = {$tovar[1]}");
дальше просто выводит на екран инфу о товаре..

я пока на этом остановлюсь, мне пора бежать домой ) прийду допишу
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
FordogeN
FordogeN
сообщение 1.3.2010, 21:58; Ответить: FordogeN
Сообщение #3


По моему логичней было бы когда добавляем в куки новый товар чтоб было значение вроде "256|1", а в самой корзине можно было изменять кол-во товара...


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 2.3.2010, 0:01; Ответить: ZiTosS
Сообщение #4


Scream, Куки и сессии это две разные вещи.

Сессии лежат на сервере, и представляю из себя временные файлы, содержащие данные в виде сериализиованного - сжатого массива.
Идентификация сессии происходит по ID сессии, который может храниться в куках, а так же(если куки отключены) передаваться в строке браузерной строке в GET параметрах.
Сессии хороши тем, что пользователь не имеет возможности руками править помещенные в них данные. Данные в сессию помещает скрипт, работающий на сервере и использующий данную сессию(текущее соединение с клиентом) для хранения данных.

Чтобы активизировать работу сессии, надо исполнить функцию session_start()
Заносить данные в сессии можно по-средством суперглобального массива $_SESSION

Куки - это временные данные, хранящиеся на клиентской машине во временных файлах(эти файлы используют браузеры, за которыми они закреплены).
Данные куки пользователь имеет возможность править вручную, он может вписать в них всё что угодно.

Советую для корзины использовать сессии, данные о товарах хранить в формате:
[php]<?php

$_SESSION = array(
"products" => array(
['номер_товара_1'] => ['количество'],
['номер_товара_2'] => ['количество'],
...
['номер_товара_N'] => ['количество']
)
);

?>[/php]
Надо удлаить i-тый товар? Да запросто:
[php]unset($_SESSION['products'][$i]);[/php]
Но не забываем, у нас PHP неактивный язык, и для выполнения каких-либо действий нужно производить полсыку данных в заголовках страниц(требуется перезагрузка страницы). Хотя есть и AJAX, но тут уже + JS


Поблагодарили: (3)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Scream_mw
Scream_mw
Topic Starter сообщение 2.3.2010, 1:11; Ответить: Scream_mw
Сообщение #5


Спасибо! Завтра утром по пробую!
А еще такой вопрос: как можно эти данные запихнуть в одну форму для дальнейшей передачи в POST/GET запросе? Т.е. чтоб номер_товара|кол-во, номер_товара|кол-во, номер_товара|кол-во...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 2.3.2010, 1:34; Ответить: ZiTosS
Сообщение #6


Scream,
Не понятно, что имеется ввиду. Данные передаются не в POST/GET. Вы их один раз занесете в сессии, а потом при переходе в нужную область(к примеру, корзина) происходит обработка сессий.
А если что, данные можно передавать в виде массивов скрытых полей, но зачем, не пойму...
<input type="hidden" name="products[]" value="[id_товара_1]|[количество]" />
<input type="hidden" name="products[]" value="[id_товара_2]|[количество]" />
...
<input type="hidden" name="products[]" value="[id_товара_M]|[количество]" />

На выходе вы получите массив
[php]<?php

$_POST['products'] = array(
[0] => "[id_товара_1]|[количество]",
[1] => "[id_товара_2]|[количество]",
...
[N] => "[id_товара_M]|[количество]"
);

?>[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Scream_mw
Scream_mw
Topic Starter сообщение 2.3.2010, 1:39; Ответить: Scream_mw
Сообщение #7


Это нужно чтоб записать в бд как заказ.
Спасибо, буду разбираться!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 2.3.2010, 2:07; Ответить: ZiTosS
Сообщение #8


Scream, а что вам мешает писать в БД из сессий? Вы меня пугаете.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Scream_mw
Scream_mw
Topic Starter сообщение 2.3.2010, 2:44; Ответить: Scream_mw
Сообщение #9


Я же новичёк :blink:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 2.3.2010, 3:06; Ответить: ZiTosS
Сообщение #10


Scream,
файл записи заказа order.php (это естественно для показа)
[php]<?php
session_start();

/*
* Есть массив $_SESSION['products']
*
*/

foreach($_SESSION['products'] as $id_order => $count)
{
// собираем данные как нужно
}

// помещаем данные в базу

?>[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
3 страниц V   1 2 3 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Как вставить куки?
0 Alex1231 1250 19.8.2015, 20:12
автор: Alex1231
Открытая тема (нет новых ответов) Разработать механизм запоминания в куки. PHP, JavaScript.
13 Bad_Ivan 6745 27.2.2012, 0:53
автор: -Blink-


 



RSS Текстовая версия Сейчас: 19.3.2024, 15:39
Дизайн