Alle eventuele Cookies verwijderen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erick Schluter

Erick Schluter

06/01/2011 21:19:47
Quote Anchor link
Ik ben bezig met een Wordpress website waarbij er een gedeelte 'protected' is.

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
unset($_COOKIE['the_cookie_name']);

Of:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
setcookie('user','',time()-3600)


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
 
PHP hulp

PHP hulp

06/11/2024 02:44:30
 
SilverWolf NL

SilverWolf NL

06/01/2011 21:25:36
Quote Anchor link
Heb je al geprobeerd om het domein op '/' te zetten? Dat helpt nog wel eens. Verder is de laatste methode die je noemt goed, die zou dus moeten werken. Let er wel op dat dit geloof ik pas bij de volgende page-load duidelijk is, en als je het zo wil doen dat zowel het koekje dat in de PHP variablen opgeslagen is als het koekje op de browser wilt verwijderen, je ze dus allebei moet gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?PHP
unset($_COOKIE['user']);
setcookie('user',null,time()-3600,'/');
?>


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:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?PHP
foreach ( array_keys ( $_COOKIE ) as $cookiekey )
    setcookie( $cookiekey, null, time () - 3600, '/' );
unset($_COOKIE);
?>


Edit:

Voor verdere informatie kan je dit bekijken:
http://nl2.php.net/cookies
Gewijzigd op 06/01/2011 21:29:32 door SilverWolf NL
 
Erick Schluter

Erick Schluter

06/01/2011 21:39:02
Quote Anchor link
Hey SilverWolf,

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)
PHP script in nieuw venster Selecteer het PHP script
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?
 
SilverWolf NL

SilverWolf NL

08/01/2011 11:36:28
Quote Anchor link
Ik zou eens uitzoeken wat in COOKIEPATH zit, dus onderaan die pagina:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?PHP
var_dump ( COOKIEPATH );
?>


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...
 
Jordi Kroon

Jordi Kroon

08/01/2011 12:07:21
Quote Anchor link
waarom niet met sessies werken?

veiliger en makkelijker om mee te werken
 
Jasper DS

Jasper DS

08/01/2011 12:50:25
Quote Anchor link
omdat een sessie stopt als de browser stopt
 
Kees Schepers

kees Schepers

08/01/2011 16:26:48
Quote Anchor link
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.
 
Justin S

Justin S

08/01/2011 18:18:51
Quote Anchor link
Hoe set je de cookie in eerste instantie? Ga je dieper in de site (bijvoorbeeld naar een submap)?
Gewijzigd op 08/01/2011 18:19:32 door Justin S
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.