Zie dezepagina:
http://62.108.21.134/kutsessie.php
broncode:
wat er mis gaat:
Als je op BladiBla klikt, vervolgens op Bla 14 dan zie je dat er in de sessie na die laatste klik een waarde 14 in de sessie is gezet onder key pt
als je nu weer op BladiBla klikt, dan wordt die pt weer uit de sessie gegooid. Echter als je nu vervolgens op linkje klikt, dan springt ie ineens weer tevoorschijn!
Klopt m'n code niet? (ben al een uur bezig met debuggen, maar zie echt niet wat), of is m'n sessie gewoon naar de herrie?
sorry voor de vage code, maar dit zit zo ongeveer in een veel groter geheel wat ik ff na moest bouwen voor debug-purposes, had geen zin om het vreslijk netjes te doen
http://62.108.21.134/kutsessie.php
broncode:
PHP:
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| <?php session_name("kutzooi"); session_start(); if (isset($_GET['p'])) { // mocht er al iets in de sessie zitten, gooien we dat er eerst uit. if (isset($_SESSION['p']) && $_SESSION['p'] != $_GET['p']) unset($_SESSION['p']); $_SESSION['p'] = $_GET['p']; } elseif(!isset($_SESSION['p'])) $_SESSION['p'] = "bla"; // default if (isset($_GET['pt'])) { // als GET['pt'] leeg is en er zit al wel een waarde in de sessie, dan moeten we daar van af if (empty($_GET['pt']) && isset($_SESSION['pt'])) unset($_SESSION['pt']); elseif (!empty($_GET['pt'])) { // GET['pt'] is niet leeg // als wat in de sessie zit verschilt met wat er uit de url komt, unsetten we de sessie-waarde eerst if (isset($_SESSION['pt']) && $_SESSION['pt'] != $_GET['pt']) unset($_SESSION['pt']); // als pt niet leeg is stoppen we de waarde in de sessie if (!empty($_GET['pt'])) $_SESSION['pt'] = $_GET['pt']; } } echo "<pre>"; print_r($_SESSION); echo "</pre>\n"; ?> <html> <head> <title>test kutsessie</title> </head> <body> <br> <table width="400" border="3"> <tr> <td valign="top"> <a href="<?= $_SERVER['PHP_SELF']; ?>?p=bla&pt=">Bla</a><br> <a href="<?= $_SERVER['PHP_SELF']; ?>?p=bladibla&pt=">BladiBla</a><br> <a href="<?= $_SERVER['PHP_SELF']; ?>?p=bla&pt=14">Bla 14</a><br> <a href="<?= $_SERVER['PHP_SELF']; ?>?p=bla&pt=1">Bla 1</a><br> </td> <td valign="top"> <?php echo (isset($_SESSION['p'])) ? "p: ".$_GET['p'] : "nog niets geklikt"; echo "<br>\n"; echo "<a href=\"".$_SERVER['PHP_SELF']."?iets=nogiets\">linkje</a><br>\n"; ?> </td> </tr> </table> </body> </html> |
wat er mis gaat:
Als je op BladiBla klikt, vervolgens op Bla 14 dan zie je dat er in de sessie na die laatste klik een waarde 14 in de sessie is gezet onder key pt
als je nu weer op BladiBla klikt, dan wordt die pt weer uit de sessie gegooid. Echter als je nu vervolgens op linkje klikt, dan springt ie ineens weer tevoorschijn!
Klopt m'n code niet? (ben al een uur bezig met debuggen, maar zie echt niet wat), of is m'n sessie gewoon naar de herrie?
sorry voor de vage code, maar dit zit zo ongeveer in een veel groter geheel wat ik ff na moest bouwen voor debug-purposes, had geen zin om het vreslijk netjes te doen