Ik heb mijn eigen weblog geschreven in php, maar bij de laatste testen liep ik echt gigantisch vast. Ik zal wel iets over het hoofd zien, maar ik kan er maar niet achter komen wat.
Wat ik wil is een simpele redirect na het inloggen van een gebruiker naar de pagina waar hij/zij vandaan kwam. De oorspronkelijke pagina wordt gehaald uit een sessie-variabele genaamd "origin". Als deze variabele niet bestaat moet de user terug gestuurd worden naar "index.php".
So far so good dacht ik, werkt perfect.... behalve op IE (ik gebruik zelf Mozilla & Thunderbird). Bij mijn zoektocht naar het hoe en waarom kwam ik er achter dat de code die ik nu gebruik eigenlijk helemaal niet zou moeten werken, want ik verstuur gewoon al content voordat ik de header()-functie aanroep. Ik krijg echter zowel in Thunderbird als in IE geen foutmeldingen als "headers already sent" etc. In IE wordt ik gewoon weer geredirect naar dezelfde login pagina (login.php) en zoals gezegd kom ik in Thunderbird netjes uit op de pagina waar ik wil zijn.
Hier een gedeelte van mijn code. Hierboven staat nog een hele zooi (site-navigatie, tabellen, etc.);
Kan iemand eens zijn/haar licht laten schijnen hierover en mij uitleggen waarom dit wel en tegelijk ook weer niet werkt
Wat ik wil is een simpele redirect na het inloggen van een gebruiker naar de pagina waar hij/zij vandaan kwam. De oorspronkelijke pagina wordt gehaald uit een sessie-variabele genaamd "origin". Als deze variabele niet bestaat moet de user terug gestuurd worden naar "index.php".
So far so good dacht ik, werkt perfect.... behalve op IE (ik gebruik zelf Mozilla & Thunderbird). Bij mijn zoektocht naar het hoe en waarom kwam ik er achter dat de code die ik nu gebruik eigenlijk helemaal niet zou moeten werken, want ik verstuur gewoon al content voordat ik de header()-functie aanroep. Ik krijg echter zowel in Thunderbird als in IE geen foutmeldingen als "headers already sent" etc. In IE wordt ik gewoon weer geredirect naar dezelfde login pagina (login.php) en zoals gezegd kom ik in Thunderbird netjes uit op de pagina waar ik wil zijn.
Hier een gedeelte van mijn code. Hierboven staat nog een hele zooi (site-navigatie, tabellen, etc.);
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| if ($obj->pass == strtoupper(md5($_POST['psswd']))) { $_SESSION['loggedin'] = 1; $_SESSION['level'] = $obj->level; $_SESSION['name'] = $obj->user; ?> <p>Login successful, you will be redirected to where you came from.</p> <?php if (isset($_SESSION['origin'])) { header("Refresh: 2; {$_SESSION['origin']}"); unset($_SESSION['origin']); } else { header("Refresh: 2; index.php"); } } else { echo("Error logging you in!<br>Check your username and password."); header("Refresh: 3"); } |
Kan iemand eens zijn/haar licht laten schijnen hierover en mij uitleggen waarom dit wel en tegelijk ook weer niet werkt
[ Voor 8% gewijzigd door bennierex op 08-02-2005 14:31 ]