1. #1
    GregoryCo's Avatar
    Registered
    29/10/03
    Location
    Izegem
    Posts
    4,748
    iTrader
    25 (100%)
    Mentioned
    0 Post(s)
    Reputation
    6/9

    Undefined index probleem SESSION

    Hallo

    Ik heb dus een sessie aangemaakt voor een winkelmandje. Ik heb alles in die sessie gekregen die ik dan in een tabel wil zetten.
    Bij een var_dump krijg ik dus alles te zien.

    Maar nu komt het probleem:

    Wanneer ik dus adhv het product id alles in de tabel wil zetten (op die manier:
    PHP Code:
    if(isset($_GET['did']))
                    {
                        
    $_SESSION['winkelmandje'][$product_id]++;
                    } 
    , krijg ik volgende error:

    Notice: Undefined index: 2 in C:\wamp\www\LAMUSIQUE\includes\winkelmand\winkelma nd.php on line 36
    De index: 2 is dus het id van het element waarop ik heb geklikt om toe te voegen aan winkelmand

    Ik heb die session in een variabele gestoken en met een foreach in html overloop ik dus alle elementen van de zaken in de session.

    Ik heb al eens opgezocht wat het probleem is en volgens mij is het iets met isset. Ik heb da ook al toegepast, maar kben niet zeker of ik het juist doe.

    Iemand die weet hoe ik dit kan oplossen?

    Bedankt!
    no votes  

  2. #2

    Registered
    30/10/08
    Location
    In my tree
    Posts
    80
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    5/5
    Notice: Undefined index: 2 in C:\wamp\www\LAMUSIQUE\includes\winkelmand\winkelma nd.php on line 36
    Dit wil zeggen dat je voor een array een key gebruitk die niet bestaat.

    Regel 36 is dan waarschijnlijk:
    PHP Code:
    $_SESSION['winkelmandje'][$product_id]++; 
    Hier doe je: zoek in de multidimensionale session-array naar het element met hoofdkey 'winkelmand' en subkey $product_id en tel er 1 bij op. $product_id is waarschijnlijk 2 en dan geeft de notice aan dat de variabele $_SESSION['winkelmandje'][2] niet bestaat.

    Om dat te vermijden moeten we dus eerst checken of de variabele waarmee we iets mee willen doen wel bestaat, dat gebeurt met isset().

    PHP Code:
    if(isset($_SESSION['winkelmandje'][$product_id]))
    {
    $_SESSION['winkelmandje'][$product_id]++;
    }
    else
    {
    $_SESSION['winkelmandje'][$product_id] = 1;

    of als je het liever korter houdt hetzelfde in 1 lijn:
    PHP Code:
    (isset($_SESSION['winkelmandje'][$product_id])) ? $_SESSION['winkelmandje'][$product_id]++ : $_SESSION['winkelmandje'][$product_id]=1
    no votes  

  3. #3
    GregoryCo's Avatar
    Registered
    29/10/03
    Location
    Izegem
    Posts
    4,748
    iTrader
    25 (100%)
    Mentioned
    0 Post(s)
    Reputation
    6/9
    Works like a charm!

    Bedankt!
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in