Ik ben momenteel bezig met een online-winkeltje voor handgemaakte poppenkleertjes (don't ask!). Daar stop ik de kleertjes (pakjes) die aan de bestellijst toegevoegd worden in een session. En wel zo: $_SESSION["pakje"][$pakjeID] = true; Dat zal misschien niet de beste methode zijn, maar dat doet nu niet ter zake.
Als een pakje in een session zit, dan ziet het er zo uit (dmv print_r();)
Als ik nu een pakje in mijn bestellijst heb staan, en dan nog een keer het overzicht van de pakjes in de database wil zien (SELECT * FROM pakjes), en dan door middel van een foreach statement de pakjes nog iets wil bijschaven voordat ik ze laat zien, dan doe ik dat met deze code:
de functie arrays is eentje die niet veel meer doet dan print_r met <pre></pre> erom heen en een grijze achtergrond...
En dit is mijn resultaat:

Zoals je ziet verandert de inhoud van de session ineens naar de inhoud van een pakje! Maar de énige regel waarop dat zou moeten gebeuren is op de foreach();
Wanneer gebeurt dit:
- als er iets staat in $_SESSION. Als deze (standaard) leeg is, dan verandert hij ook niet.
- Het gebeurt alleen op mijn online webserver (PHP-versie 4.3.9), en niet op mijn eigen machine (PHP-versie 4.3.6)...
EDIT: en mijn vraag is: waarom? wat doe ik fout? hoe moet het dan?
en ja, ik heb gegoogled, ge-GoT-searched en op php.net gekeken, maar geen probleem/oplossing gevonden die hier over leek te gaan, maar misschien gebruik ik wel de verkeerde zoektermen...
Als een pakje in een session zit, dan ziet het er zo uit (dmv print_r();)
code:
1
2
3
4
5
6
7
8
| Array ( [pakje] => Array ( [3] => 1 ) ) |
Als ik nu een pakje in mijn bestellijst heb staan, en dan nog een keer het overzicht van de pakjes in de database wil zien (SELECT * FROM pakjes), en dan door middel van een foreach statement de pakjes nog iets wil bijschaven voordat ik ze laat zien, dan doe ik dat met deze code:
PHP:
1
2
3
4
5
6
7
| echo "woei"; arrays($_SESSION); foreach ($pakjes as $pakje) { echo "blaat"; arrays($_SESSION); // hier komen wat losse statements; } |
de functie arrays is eentje die niet veel meer doet dan print_r met <pre></pre> erom heen en een grijze achtergrond...
En dit is mijn resultaat:

Zoals je ziet verandert de inhoud van de session ineens naar de inhoud van een pakje! Maar de énige regel waarop dat zou moeten gebeuren is op de foreach();
Wanneer gebeurt dit:
- als er iets staat in $_SESSION. Als deze (standaard) leeg is, dan verandert hij ook niet.
- Het gebeurt alleen op mijn online webserver (PHP-versie 4.3.9), en niet op mijn eigen machine (PHP-versie 4.3.6)...
EDIT: en mijn vraag is: waarom? wat doe ik fout? hoe moet het dan?
en ja, ik heb gegoogled, ge-GoT-searched en op php.net gekeken, maar geen probleem/oplossing gevonden die hier over leek te gaan, maar misschien gebruik ik wel de verkeerde zoektermen...
[ Voor 11% gewijzigd door iain op 17-11-2004 23:20 ]
I used to be an atheist, until I realised I was god.