Bekijk Volledige Versie : probleem met php-uitlogscript
Ik heb een probleem waar ik maar niet uitkom, nl. een uitlogscript. Ik
gebruik een inlogscript dat prima werkt (van:
http://www.html-site.nl/inlog-registratiescript.php) Deze is opgeslagen in
het bestandje login.php. Dit script wordt aangeroepen vanuit index.php. In
inlog.php worden de cookies als volgt aangemaakt:
setcookie("username", $_POST['username'], time() + 240*60);
setcookie("password", $_POST['password'], time() + 240*60);
Na 4 uur wordt de gebruiker dus vanzelf uitgelogd. Dit werkt. Nu wil ik de
gebruiker de mogelijkheid geven om zelf uit te loggen, maar dit krijg ik dus
niet voor elkaar.
Ik heb in index.php als code opgenomen:
if ($_GET['actie'] == logout)
{
echo "test";
setcookie("username", "", time()-60);
setcookie("password", "", time()-60);
}
Het woordje test komt in beeld, dus hij roept het script aan. Volgens de
boekjes zou deze code juist moeten zijn, maar toch wordt er niet uitgelogd.
Rara, wat doe ik hier fout?
Groeten, Koen
Ronald Klip
03/09/07, 17:00
Op Mon, 03 Sep 2007 12:52:36 +0200 schreef Koen:
> if ($_GET['actie'] == logout)
> {
> echo "test";
> setcookie("username", "", time()-60);
> setcookie("password", "", time()-60);
> }
setcookie() moet uitgevoerd worden voordat je enige output verstuurt. Als
je die echo dus na de setcookie-regels plaatst, gaat het wellicht beter.
--
groet, Ronald
"Ronald Klip" <nieuws@contentecontent.invalid> schreef in bericht
news:op.tx2r6khou6ldbc@dedell...
Op Mon, 03 Sep 2007 12:52:36 +0200 schreef Koen:
> if ($_GET['actie'] == logout)
> {
> echo "test";
> setcookie("username", "", time()-60);
> setcookie("password", "", time()-60);
> }
setcookie() moet uitgevoerd worden voordat je enige output verstuurt. Als
je die echo dus na de setcookie-regels plaatst, gaat het wellicht beter.
--
groet, Ronald
Dank voor je reactie. Ik heb het geprobeerd, maar dat helpt helaas niet...
Koen
Ronald Klip
03/09/07, 17:00
Op Mon, 03 Sep 2007 14:57:22 +0200 schreef Koen:
> "Ronald Klip" <nieuws@contentecontent.invalid> schreef in bericht
> news:op.tx2r6khou6ldbc@dedell...
> Op Mon, 03 Sep 2007 12:52:36 +0200 schreef Koen:
>
>> if ($_GET['actie'] == logout)
Ah, je bent de aanhalingstekens rond lougout vergeten.
Tipje: veel van dit soort foutjes ontdek je gemakkelijk door
error_reporting tijdelijk op E_ALL te zetten:
error_reporting(E_ALL);
--
groet, Ronald
"Ronald Klip" <nieuws@contentecontent.invalid> schreef in bericht
news:op.tx2xywx4u6ldbc@dedell...
Op Mon, 03 Sep 2007 14:57:22 +0200 schreef Koen:
> "Ronald Klip" <nieuws@contentecontent.invalid> schreef in bericht
> news:op.tx2r6khou6ldbc@dedell...
> Op Mon, 03 Sep 2007 12:52:36 +0200 schreef Koen:
>
>> if ($_GET['actie'] == logout)
Ah, je bent de aanhalingstekens rond lougout vergeten.
Tipje: veel van dit soort foutjes ontdek je gemakkelijk door
error_reporting tijdelijk op E_ALL te zetten:
error_reporting(E_ALL);
Dat is het ook niet :-(
Het woordje test kwam immers gewoon in beeld. En met aanhalingstekens
doet-ie het ook niet.
Ronald Klip
03/09/07, 17:00
Op Mon, 03 Sep 2007 15:26:10 +0200 schreef Koen:
[vriendelijk verzoek: kun je je Outlook svp zo afstellen dat je wat
fatsoenlijker kwoot? hartelijk dank]
[uitlogprobleem met cookies]
> Dat is het ook niet :-(
> Het woordje test kwam immers gewoon in beeld. En met aanhalingstekens
> doet-ie het ook niet.
Enkel het verwijderen van de cookies zal waarschijnlijk niet voldoende
zijn om de lopende sessie af te breken. Zonder je inlogprocedure geheel te
kennen een paar suggesties:
* $_COOKIE leegmaken (met $_COOKIE = array();)
* en/of de gebruiker redirecten zodat je applicatie nogmaals de
inlogcontrole uitvoert.
--
groet, Ronald
> [uitlogprobleem met cookies]
>> Dat is het ook niet :-(
>> Het woordje test kwam immers gewoon in beeld. En met aanhalingstekens
>> doet-ie het ook niet.
> Enkel het verwijderen van de cookies zal waarschijnlijk niet voldoende
> zijn om de lopende sessie af te breken. Zonder je inlogprocedure geheel te
> kennen een paar suggesties:
> * $_COOKIE leegmaken (met $_COOKIE = array();)
> * en/of de gebruiker redirecten zodat je applicatie nogmaals de
> inlogcontrole uitvoert.
Ronald, Dank voor al je reacties.
Ik heb dit geprobeerd en het lijkt aanvankelijk te lukken. De inlognaam van
de gebruiker verdwijnt van het scherm, zoals ik dat geprogrammeerd heb.
Echter, klik je daarna ergens op het menu, zodat de index-pagina opnieuw
geladen wordt, dan ben je toch weer ingelogd. De cookie lijkt dus heel even
te worden gewist, maar is daarna toch weer geactiveerd.