Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Корзина на COOKIE 
V
    Опции темы
maugli
Дата 10.8.2008, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



Здравствуйте, у меня возникла проблема при создании корзины на основе COOKIE. Есть у меня куки cart - в которых хранятся данные, т.е. это своего рода массив. Посмотрел и сделал как в мануале.
Есть файл класса:
Код
<?php
class cart
{    
    function cart_add()
    {
        $id = $_GET['id'];
        
        setcookie("cart[0]", "0");
        setcookie("cart[1]", "1");
        setcookie("cart[2]", "2");
        
        //Перезагрузка страницы
        $refresh = '<html>
        <head>
        <meta http-equiv="refresh" content="0; url=http://'.$_SERVER['HTTP_HOST'].'/cart/">
        </head>
        <body></body>';
        echo $refresh;              
    }
    function cart_print()
    {
        var_dump($_COOKIE['cart']);
    }
}
?> 
  

Есть файл который вызывает эти функции:
Код
<?php
if( isset($_GET['id']) )
{
    include "classes/class_cart.php";
    $object_cart = new cart();
    
    $object_cart->cart_add();
}
if( !isset($_GET['id']) )
{
    include "header.php";
    $object_cart->cart_print();
    include "footer.php"; 
}
?> 
  
И ничего не выводится. Когда просто втупую вставляю куки где-нибудь, то все нормально, а именно так не работает, подскажите в чем проблема?

P.S.
В корзину добавляется если ссылка cart/id/ (id - целое число) и с помощью .htaccess перенаправляется на файл в котором идем вызов функции cart_add();
Если ссылка cart/, то идет просто просмотр $_COOKIE с помощью функции cart_print();

Спасибо!
PM MAIL   Вверх
Ockonal
Дата 10.8.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Smile
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 9.7.2007
Где: Ukraine::Nikolaev ;

Репутация: 1
Всего: 3



Вы пробывали проверять кукисы в браузере? 
Или написать: if( isset( $_COOKIES['cart'] ) ) { echo "true"; } else { echo "false"; };
--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке.
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
maugli
Дата 10.8.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



Ockonal, я пробовал другие кукисы прописать, и даже эти но просто тупо вставив их выше хедера. А вот так вот когда функция, то он почему-то не ставит их. 
И если он выводит NULL значит и не прописались.
PM MAIL   Вверх
Ockonal
Дата 10.8.2008, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Smile
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 9.7.2007
Где: Ukraine::Nikolaev ;

Репутация: 1
Всего: 3



Цитата

и даже эти но просто тупо вставив их выше хедера. А вот так вот когда функция, то он почему-то не ставит их. 

Установка cookies должна быть раньше до отправки любого текста.
Попробуйте просмотреть исходный код страницы( в браузере ), может там есть закомментированные ошибки.
--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке.
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
maugli
Дата 10.8.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



Ockonal, А как их можно просмотреть?

PM MAIL   Вверх
Ockonal
Дата 10.8.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Smile
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 9.7.2007
Где: Ukraine::Nikolaev ;

Репутация: 1
Всего: 3



Их? Исходный код, или кукисы?
Cookies:
Например, в FireFox:
Инструменты->Настройки->Приватность->Показать Cookies

--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке.
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
maugli
Дата 10.8.2008, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



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

Как можно в других броузерах посмотреть значения кукисов?

Это сообщение отредактировал(а) maugli - 10.8.2008, 12:46
PM MAIL   Вверх
Ockonal
Дата 10.8.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Smile
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 9.7.2007
Где: Ukraine::Nikolaev ;

Репутация: 1
Всего: 3



Попробуйте ставить проверку, если такой cookies уже существует - удалить его.
--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке.
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
maugli
Дата 10.8.2008, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



Ockonal, Это я понял, спасибо
А что делать с тем, что в других броузерах они не отображаются?
PM MAIL   Вверх
Ockonal
Дата 10.8.2008, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Smile
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 9.7.2007
Где: Ukraine::Nikolaev ;

Репутация: 1
Всего: 3



Код

$id = $_GET['id'];
        
        setcookie("cart[0]", "0");
        setcookie("cart[1]", "1");
        setcookie("cart[2]", "2");
        
        //Перезагрузка страницы
        $refresh = '<html>
        <head>
        <meta http-equiv="refresh" content="0; url=http://'.$_SERVER['HTTP_HOST'].'/cart/">
        </head>
        <body></body>';
        echo $refresh;   

1) $id = $_GET['id']; - зачем вам это? Попробуйте пока закомментировать.
2) $refresh - допишите </html>
--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке.
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
maugli
Дата 10.8.2008, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



Ockonal, сделал так
Код
        setcookie("cart[0]", "50");
        setcookie("cart[1]", "60");
        setcookie("cart[2]", "70");
        
        //Перезагрузка страницы
        $refresh = '<html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
        <meta http-equiv="refresh" content="0; url=http://'.$_SERVER['HTTP_HOST'].'/cart/">
        </head>
        <body>&nbsp;</body></html>';
        echo $refresh; 


Ничего не отображается. Смотрю как вы и говорили в Фаерфоксе Инструменты->Настройки->Приватность->Показать Cookies
они там стоят, но не отображается ничего :(
просматриваю через var_dump($_COOKIE['cart']);

Это сообщение отредактировал(а) maugli - 10.8.2008, 13:05
PM MAIL   Вверх
Ockonal
Дата 10.8.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Smile
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 9.7.2007
Где: Ukraine::Nikolaev ;

Репутация: 1
Всего: 3



попробуйте 
Код

print_r( $_COOKIES );
print_r( $_COOKIES['cart']; );

--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке.
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
maugli
Дата 10.8.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 8.3.2005

Репутация: нет
Всего: нет



Ockonal, сделал
Код
        if( isset($_COOKIE['cart']) )
            echo 'da';
        if( !isset($_COOKIE['cart']) )
            echo 'no';
        
        print_r($_COOKIE);

Они не установлены :(

Добавлено через 1 минуту и 4 секунды
А если просмотреть через настройки... в Фаерфоксе, то они там присутствуют :(
PM MAIL   Вверх
Ockonal
Дата 10.8.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Smile
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 9.7.2007
Где: Ukraine::Nikolaev ;

Репутация: 1
Всего: 3



Попробуйте создать другой файл( temp.php )
записать просто ф-цию:
cart_add() {
  setcookie("cart", "0");
};
Инклудить ее, вызывать.

Добавлено через 1 минуту и 17 секунд
Попробуйте создавать не массив cart, а cart1, cart2, cart3
--------------------
Ум заключается не только в знании, но и в умении прилагать знание на деле.Самое лучшее из всех доказательств есть опыт.Каждому человеку свойственно ошибаться, но никому, кроме глупца, несвойственно упорствовать в ошибке.
PM MAIL WWW ICQ Skype GTalk Jabber MSN   Вверх
Letov
Дата 10.8.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



А у вас фал, устанавливающий кукисы и файл, на который происходит Refresh находятся с одной папке или в разных?
Может стоит установить хост и папку доступа к кукису.

---- Или вообще через сессии делать?

Это сообщение отредактировал(а) Letov - 10.8.2008, 13:37


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.