Написать корзину на PHP. Advice needed

IceCrow

Проблема такая: Есть HTML сайт - мини интернет магазин на 10 товаров, которые никогда не будут меняться. Нужно с минимальными усилиями написать корзину.
В инете почитал - пишут, что делается это с помощью куки и базы данных.
Но нельзя ли сделать как нибудь попроще для такого небольшого сайта?

356ft85

Но нельзя ли сделать как нибудь попроще для такого небольшого сайта?
Ну например с помощью одних только кук сделать (или сессии без базы
а проще сессии(куков) уже наверное ничего и быть не может

IceCrow

а почему нельзя объявить в index.php какой нибудь глобальный массив и всё туда записать?

Alena_08_11

эээ. потому что при следующем реквесте этот глоб массив перезапишется новыми данными (если они будут в реквесте). То есть эти данные придётся пихать куда нить в hid поле формы, или ко всем ссылкам дописывать после _?_. Лучше пихать в куки (как посоветовали). А ещё лучше ассоциировать данные с неким ключом и записать их в БД или ещё куда нить на постоянку, а этот некий ключ положить в куки, и потом, когда надо, зная ключ - доставать эти данные из постоянки ( это как раз механизм сессий)
ps. Но если ты аджыл, то сгори сука !

Werdna

а почему нельзя объявить в index.php какой нибудь глобальный массив и всё туда записать?
:facepalm:
Можно, но где его хранить?

0000

Ботай куки - там все просто.

IceCrow

А можно на пальцах описать идею куки?
без тех подробностей, просто по-человечески

0000

На практике лучше поясню
На страницу добавляешь javascript

function getCookie(name) {
var cookie = " " + document.cookie;
var search = " " + name + "=";
var setStr = null;
var offset = 0;
var end = 0;
if (cookie.length > 0) {
offset = cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = cookie.indexOf(";", offset)
if (end == -1) {
end = cookie.length;
}
setStr = unescape(cookie.substring(offset, end;
}
}
return(setStr);
}

function setCookie (name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
expires) ? "; expires=" + expires : "") +
path) ? "; path=" + path : "") +
domain) ? "; domain=" + domain : "") +
secure) ? "; secure" : "");
}

Допустим пользователь зашел на страницу и нажал на кнопку. Если на кнопке висит setCookie('имя', 'значение' то в куки (локальный файл на компе пользователя запишется пара имя-значение). Допустим пользователь снова зашел на страницу и нажал другую кнопку, на которой висит getCookie ('имя'). Если ранее куку установили, то теперь мы ее прочитаем, иначе получим пустое значение.
Допустим пользователь понажимал на кнопки и задал набор значений в куках, а после нажал кнопку submit на форме (сформировал заказ тогда в php файле мы можем почитать

<?php
echo $_COOKIE['имя'];
?>

Вот примерно так. Для более тесного знакомства рекомендую глянуть - Хольцнер - PHP в примерах, включая 6

IceCrow

Спасибо, буду изучать

danilov

Я язык не знаю, но разве setCookie не перезапишет всё, что там было?
Или это какой-то хитрый объект?

0000

setCookie перезапишет значение для параметра <имя>.

slonishka

но разве setCookie не перезапишет всё, что там было?
Или это какой-то хитрый объект?
кукисы - это всего лишь хитрый объект™! (c) конференция ООП-разработчиков (на Java? ;))

karkar

Ну, его поведение и правда несколько неожиданное (хитрое).
 
 
document.cookie = "mother=anarchy";
document.cookie = "father=glass of port wine";
document.write( document.cookie );

Выводит
mother=anarchy; father=glass of port wine
Изменять семантику присваивания мало где принято.
Оставить комментарий
Имя или ник:
Комментарий: