[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с куками.
RCuPeR
Всем привет, задача написать что-то типа корзины для инет магаза. Была версия с БД, но она рухнула сразу после критики на этом форуме, теперь вот думаю всё делать куками.
Кто-то может чем-то помочь ? С кукисами работаю впервые. Знаю как записать и знаю как прочитать, на этом мои знания ограничиваются.

На данном этапе хотелось бы узнать алгоритм записи товаров в куки. Что, как и когда ?!



Спустя 43 минуты, 54 секунды (28.03.2011 - 00:41) Trianon написал(а):
Очевидно нужно будет выбрать два символа-разделителя,
записывать и читать придется список позиций,
а каждую позицию описывать идентификатором товара и количеством .
id1-qty1,id2-qty2,id3-qty3... - как-то так.

Спустя 10 минут, 33 секунды (28.03.2011 - 00:52) RCuPeR написал(а):
Хм-хм, примерно такое я хотел услышать.

А теперь, можно по-подробней ?!

Вот смотри, я нажимаю на кнопочку "В корзину", данные по товару с id = 1 пошли на обработчик. Я там записываю всё это в куку setcookie('idProduct', $id);, допустим. А как реально сделать, что бы я мог сразу в одну куку писать количество товара с 1 id и кучу товаров в разными id.

Хм...А потом ещё и прочитать как-то их.

Думаю, суть вопроса ясна.

Спустя 18 минут, 39 секунд (28.03.2011 - 01:10) Trianon написал(а):
>...Я там записываю всё это в куку setcookie('idProduct', $id);, допустим.

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

То есть кука пишется одна, независимо от того, сколько позиций лежит в корзине.

Спустя 3 минуты, 58 секунд (28.03.2011 - 01:14) RCuPeR написал(а):
Хм...Т.е, нужно бить в сторону explode и implode ?!

Спустя 4 минуты, 52 секунды (28.03.2011 - 01:19) Rand написал(а):
Подумайте, может лучше положить массив в сессию, чем разбирать куки? На мой взгляд это было бы проще.

Нажали на кнопку "В корзину" и переменной сессии присвоили что-то вроде $_SESSION['cart'][123] = 2, что означает добавили 2 товара с id = 123.

Спустя 1 минута, 51 секунда (28.03.2011 - 01:21) RCuPeR написал(а):
Но, сессии не так живучи.
Решил уже на куках делать.

<?php

$a = "a3, a2, a4";

$e = explode(",", $a);

print_r($e);

$i = implode(";",$e);

print_r($i);
?>


Вернёт
Array ( [0] => a3 [1] => a2 [2] => a4 ) a3; a2; a4


Принцип понял, завтра буду работать.

Спустя 10 часов, 34 минуты, 29 секунд (28.03.2011 - 11:56) RCuPeR написал(а):
Я вернулсо!

Накидал вот такую штуковину, жду критики, нужно же как-то учится ?!

<?php require("../inc/db.php");

header('Content-Type: text/html; charset=utf-8');

$id = isset($_POST['id']) ? htmlspecialchars(trim((int)$_POST['id'])) : NULL;
$num = isset($_POST['num']) ? htmlspecialchars(trim((int)$_POST['num'])) : NULL;

$query = mysql_query("SELECT `productID`, `productName`, `productPrice` FROM `products` WHERE `productID` =". $id) or die(mysql_error());
$array = mysql_fetch_assoc($query);

$price = $array['productPrice'];
$name = $array['productName'];

if($num > 1){
$price = $array['productPrice'] * $num;
}

$data = array(
1 => $id,
2 => $name,
3 => $price,
4 => $num
);

$i = implode("; ", $data);

setcookie ("cart", $i,time()+3600);



?>


Теперь вопрос: я записал куку, всё гуд. Но, когда я добавляю другой товар, куда ПЕРЕПИСЫВАЕТСЯ, как её ДОЗАПИСЫВАТЬ ?


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.