Кто-то может чем-то помочь ? С кукисами работаю впервые. Знаю как записать и знаю как прочитать, на этом мои знания ограничиваются.
На данном этапе хотелось бы узнать алгоритм записи товаров в куки. Что, как и когда ?!
Спустя 43 минуты, 54 секунды (28.03.2011 - 00:41) Trianon написал(а):
Очевидно нужно будет выбрать два символа-разделителя,
записывать и читать придется список позиций,
а каждую позицию описывать идентификатором товара и количеством .
id1-qty1,id2-qty2,id3-qty3... - как-то так.
записывать и читать придется список позиций,
а каждую позицию описывать идентификатором товара и количеством .
id1-qty1,id2-qty2,id3-qty3... - как-то так.
Спустя 10 минут, 33 секунды (28.03.2011 - 00:52) RCuPeR написал(а):
Хм-хм, примерно такое я хотел услышать.
А теперь, можно по-подробней ?!
Вот смотри, я нажимаю на кнопочку "В корзину", данные по товару с id = 1 пошли на обработчик. Я там записываю всё это в куку setcookie('idProduct', $id);, допустим. А как реально сделать, что бы я мог сразу в одну куку писать количество товара с 1 id и кучу товаров в разными id.
Хм...А потом ещё и прочитать как-то их.
Думаю, суть вопроса ясна.
А теперь, можно по-подробней ?!
Вот смотри, я нажимаю на кнопочку "В корзину", данные по товару с 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.
Нажали на кнопку "В корзину" и переменной сессии присвоили что-то вроде $_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);
?>
Теперь вопрос: я записал куку, всё гуд. Но, когда я добавляю другой товар, куда ПЕРЕПИСЫВАЕТСЯ, как её ДОЗАПИСЫВАТЬ ?
_____________
Гнусный социопат с комплексом Бога.