tablica jako zmienna sesji

Odpowiedz Nowy wątek
2012-08-11 22:18

Rejestracja: 9 lat temu

Ostatnio: 3 lata temu

0

Witam. Chciałbym aby rzeczy które zamawia użytkownik na mojej stronie były przechowywane w tablicy która jest zmienną sesji. Wydaje mi się, że to prosta sprawa jednak taki kod:

updateKoszyk.php

<?php
    $produkt = $_GET['product'];
    $tmp = array();
    $tmp[0] = $produkt;
    $tmp[1] = 1;

    $_SESSION['koszyk'][]=$tmp;

    print_r($_SESSION['koszyk']);
?>

Zupełnie nie działa. To co mi się print_r'uje to ciągle jest tablica z tylko jednym elementem który się zmienia w zależności od tego co zamówi użytkownik. Tak jakby ta tablica czyściła się podczas wprowadzania nowych danych.

Plik php w którym jest powyższy kod wywoływany jest za pomocą ajaxa:

function updateKoszyk(zmienna)
{
     var XHR = ajaxInit();

     if(XHR != false)
     {
        try
        {
            XHR.open("GET", "php_func/updateKoszyk.php?product="+zmienna, true);
        }
        catch(e)
        {
            alert(e.description);
        }

        XHR.onreadystatechange = function()
        {
            if(XHR.readyState==4)
            {
                document.getElementById('orderText').innerHTML = XHR.responseText;
            }
        }

        XHR.send(null);
     }
}

Może chodzi o to, że sesja startuje w pliku index.php a plik updateKoszyk.php jest jakby poza stroną, tzn nie jest nigdzie includowany na stronie, jest po prostu w folderze tam gdzie strona i otwiera go ta funkcja w ajaxie. Ale chyba to nie przez to nie działa bo sesja i tak i tak jest chyba wspólna.

Pozostało 580 znaków

2012-08-11 22:47
Moderator

Rejestracja: 13 lat temu

Ostatnio: 15 godzin temu

Lokalizacja: Rzeszów

session_start() musi być na początku każdego pliku. (tj tego co wywołujesz)

edit: wcale nie musi być na początku, a dopiero przy użyciu zmiennych sesyjnych, ale dla ułatwienia daj na początek.


edytowany 1x, ostatnio: dzek69, 2012-08-11 22:48

Pozostało 580 znaków

2012-08-11 22:54

Rejestracja: 9 lat temu

Ostatnio: 3 lata temu

0

Super. Dzieki :).

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0