Alle eventuele Cookies verwijderen?
Dit houdt in dat men pagina's pas kan zien als er een wachtwoord is ingevoerd. Dit werkt...en naar behoren lijkt mij. Het resultaat is een Cookie.
En je raadt het vast al...ik kan maar geen uitlog-knop verzinnen die werkt.
Dingen als:
Of:
Werken gewoon niet...nu ben ik geen PHP ster...of Javascript for that matter. Maar ik moet toch ergens bovenaan een pagina een PHP of Javascriptje kunnen plakken dat er voor zorgt dat alle Cookies worden 'expired'?
Ik weet dat een Cookie op de PC/Mac van een bezoeker staat en dat ik deze niet kan verwijderen...dus vandaar maar 'expire'. Toch?
Ook weet ik niet of ik de naam van een te verwijderen Cookie moet hebben of dat ik die achterwege kan laten...omdat ik natuurlijk 'alle' Cookies wil verwijderen en niet specifiek 1....alle Cookies van het betreffende domein b.t.w..
Iemand een heldere uitleg of oplossing?
Kom er maar niet uit...
Gewijzigd op 06/01/2011 21:20:09 door Erick Schluter
Edit:
Over een van je laatste vragen: ja, je moet altijd de naam van de cookie weten om het te kunnen verwijderen. Je kan het wel automatiseren zoals in onderstaand voorbeeld:
Over een van je laatste vragen: ja, je moet altijd de naam van de cookie weten om het te kunnen verwijderen. Je kan het wel automatiseren zoals in onderstaand voorbeeld:
Code (php)
1
2
3
4
5
2
3
4
5
<?PHP
foreach ( array_keys ( $_COOKIE ) as $cookiekey )
setcookie( $cookiekey, null, time () - 3600, '/' );
unset($_COOKIE);
?>
foreach ( array_keys ( $_COOKIE ) as $cookiekey )
setcookie( $cookiekey, null, time () - 3600, '/' );
unset($_COOKIE);
?>
Edit:
Gewijzigd op 06/01/2011 21:29:32 door SilverWolf NL
Ik heb beide voorbeelden geprobeerd...maar nada!?
De situatie:
Iemand is ingelogd op een Wordpress pagina...ik heb een uitlog-knop toegevoegd die naar 'index_test.php' (in dit geval) gaat. Index_test.php bevat het eventuele script dat de Cookies moet verwijderen en springt na verwijderen van de Cookies door naar de 'uitgelogd.php'.
Op 'uitgelogd.php' staan 2 links: 'enter the site' en 'member login'
Als iemand nu op 'member login' klikt komt hij op een pagina waarvoor zou moeten worden ingelogd...maar na klikken op de uitlog-knop blijf je ingelogd.
Ook met jouw beide voorbeelden bovenaan index_test.php...
Toevoeging op 06/01/2011 21:48:47:
Ik heb het probleem denk ik ontdekt.
Er is een pagina genaamd: wp-pass.php met daarin de volgende regel code:
Code (php)
1
setcookie('wp-postpass_' . COOKIEHASH, $_POST['post_password'], time() + 864000, COOKIEPATH);
...hierdoor bestaat een Cookie 10 jaar??!
Maar...als ik 864000 aanpas in bv. 10 (10 sec.) dan ben je bij elke page refresh ongewild uitgelogd.
Mmhh...wat nu?
Dat een cookie 10 jaar bestaat zou niets uit moeten maken, je kan elke cookie verwijderen door mijn code. Ik denk dus dat het aan het path ligt. Ook hebben ze misschien nog meer (rare) beveiligingen gemaakt, maar ik gebruik wordpress niet en weet dus ook niet wat er in de rest van de code staat.
Kijk dus eerst eens goed naar het pad...
veiliger en makkelijker om mee te werken
omdat een sessie stopt als de browser stopt
Ligt eraan, als je sessionid opgeslagen word in een cookie (wat je browser automatisch doet) dan ben je sessie niet kwijt in de meeste browsers na een restart.
Gewijzigd op 08/01/2011 18:19:32 door Justin S