Archief - Undefined index probleem SESSION

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

GregoryCo

Legacy Member
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:
if(isset($_GET['did']))
				{
					$_SESSION['winkelmandje'][$product_id]++;
				}
, krijg ik volgende error:

Notice: Undefined index: 2 in C:\wamp\www\LAMUSIQUE\includes\winkelmand\winkelmand.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!

GivenToFly

Legacy Member
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:
$_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:
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:
(isset($_SESSION['winkelmandje'][$product_id])) ? $_SESSION['winkelmandje'][$product_id]++ : $_SESSION['winkelmandje'][$product_id]=1;
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan