Met het maken van een webshop loop ik tegen een probleem aan. Hier lokaal heb ik alles werkend en wel, maar nu ik het upgeload heb naar NXS werkt het bestelproces opeens niet meer.
Bij het bestelproces worden namelijk de variabelen uit de forms stap voor stap in de $_SESSION var geschreven. Een voorbeeldje:
Bij het bestellen worden dus bijvoorbeeld dingen als verzendmethode vastgelegd in $_SESSION['onderdeel']['verzendmethode']. Het probleem is echter dat deze niet worden op geslagen op de een of andere manier. Ik weet zeker dat bovenstaande code wordt uitgevoerd (getest met een simpele 'echo'). Het vreemde is dat de waardes in de $_SESSION['winkelmand']-variabele wel 'onthouden' worden, deze bestaat uit:
Dit probleem heb ik alleen op de server van NXS, hier thuis werkt het prima. Ik heb eens naar de phpinfo() van beide gekeken, maar zie weinig verschillen eigenlijk. Hier de phpinfo van NXS:
Ik hoop dat jullie me enige aanwijzingen kunnen geven in de goede richting, want ik weet echt niet waar het probleem zou kunnen zitten. Als er namelijk iets fout is aan de manier van $_SESSION vullen, dan is dat over het hele script (1000 regels) fout, dat kan ik niet zomaar even aanpassen om te testen of dat de oorzaak was...
Bij het bestelproces worden namelijk de variabelen uit de forms stap voor stap in de $_SESSION var geschreven. Een voorbeeldje:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| if ($_GET['ref']=="betvergeg") { if (is_numeric(trim($_POST['verzendmethode']))) { $_SESSION['betvergeg']['verzendmethode'] = $_POST['verzendmethode']; } else { unset($_SESSION['betvergeg']['verzendmethode']); } if (is_numeric(trim($_POST['betaalmethode']))) { $_SESSION['betvergeg']['betaalmethode'] = $_POST['betaalmethode']; } else { unset($_SESSION['betvergeg']['betaalmethode']); } } |
Bij het bestellen worden dus bijvoorbeeld dingen als verzendmethode vastgelegd in $_SESSION['onderdeel']['verzendmethode']. Het probleem is echter dat deze niet worden op geslagen op de een of andere manier. Ik weet zeker dat bovenstaande code wordt uitgevoerd (getest met een simpele 'echo'). Het vreemde is dat de waardes in de $_SESSION['winkelmand']-variabele wel 'onthouden' worden, deze bestaat uit:
PHP:
1
| $_SESSION['winkelmand'][] = array($type, $aantal, $art_id) |
Dit probleem heb ik alleen op de server van NXS, hier thuis werkt het prima. Ik heb eens naar de phpinfo() van beide gekeken, maar zie weinig verschillen eigenlijk. Hier de phpinfo van NXS:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| Session Support enabled Registered save handlers files user Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 On On session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 100 100 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path /tmp /tmp session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid On On |
Ik hoop dat jullie me enige aanwijzingen kunnen geven in de goede richting, want ik weet echt niet waar het probleem zou kunnen zitten. Als er namelijk iets fout is aan de manier van $_SESSION vullen, dan is dat over het hele script (1000 regels) fout, dat kan ik niet zomaar even aanpassen om te testen of dat de oorzaak was...