cookies niet verwijderd
Wim - 10/03/2006 20:31 (laatste wijziging 10/03/2006 20:32)
Crew algemeen
Hallo iedereen,
Mijn koekjes worden niet verwijderd ... Raar dus
<?php
// $global->logout() is deze functie:
function logout () {
setcookie(COOKIE_PREFIX.'userid', '', time()-1, $site['cookie_path'], $site['cookie_domain']);
setcookie(COOKIE_PREFIX.'username', '', time()-1, $site['cookie_path'], $site['cookie_domain']);
setcookie(COOKIE_PREFIX.'password', '', time()-1, $site['cookie_path'], $site['cookie_domain']);
return true;
}
?>
<?php
// $global->logout() is deze functie:
function logout ( ) {
setcookie ( COOKIE_PREFIX
. 'userid' , '' , time ( ) - 1 , $site [ 'cookie_path' ] , $site [ 'cookie_domain' ] ) ; setcookie ( COOKIE_PREFIX
. 'username' , '' , time ( ) - 1 , $site [ 'cookie_path' ] , $site [ 'cookie_domain' ] ) ; setcookie ( COOKIE_PREFIX
. 'password' , '' , time ( ) - 1 , $site [ 'cookie_path' ] , $site [ 'cookie_domain' ] ) ; return true ;
}
?>
<?php
//logout.php, klopt normaal ... :s
require_once ('../includes/global.inc.php');
$global->allowUsers('lid');
$global->startpage('members/logout.tpl');
if(isset($_POST['logout'])) {
$global->logout();
$tpl->newBlock('logged_out');
}
else
$tpl->newBlock('confirmation');
$global->endpage();
?>
<?php
//logout.php, klopt normaal ... :s
require_once ( '../includes/global.inc.php' ) ;
$global -> allowUsers ( 'lid' ) ;
$global -> startpage ( 'members/logout.tpl' ) ;
if ( isset ( $_POST [ 'logout' ] ) ) { $global -> logout ( ) ;
$tpl -> newBlock ( 'logged_out' ) ;
}
else
$tpl -> newBlock ( 'confirmation' ) ;
$global -> endpage ( ) ;
?>
koekjes zijn aangemaakt met:
<?php
setcookie(COOKIE_PREFIX.'userid', $list->id, time()+60*60*24*366, $site['cookie_path'], $site['cookie_domain']);
setcookie(COOKIE_PREFIX.'username', $_POST['username'], time()+60*60*24*366, $site['cookie_path'], $site['cookie_domain']);
setcookie(COOKIE_PREFIX.'password', md5($_POST['password']), time()+60*60*24*366, $site['cookie_path'], $site['cookie_domain'
?>
<?php
setcookie ( COOKIE_PREFIX
. 'userid' , $list -> id , time ( ) + 60 * 60 * 24 * 366 , $site [ 'cookie_path' ] , $site [ 'cookie_domain' ] ) ; setcookie ( COOKIE_PREFIX
. 'username' , $_POST [ 'username' ] , time ( ) + 60 * 60 * 24 * 366 , $site [ 'cookie_path' ] , $site [ 'cookie_domain' ] ) ; setcookie ( COOKIE_PREFIX
. 'password' , md5 ( $_POST [ 'password' ] ) , time ( ) + 60 * 60 * 24 * 366 , $site [ 'cookie_path' ] , $site [ 'cookie_domain' ?>
vannalles geprobeert maar wijnig/niets werkt ...
Thx,
GDX^
//note: geen errors, maar koekjes worden wel niet verwijderd ...
5 antwoorden
Gesponsorde links
BigBug - 10/03/2006 20:35
PHP expert
Misschien kan je unset(); gebruiken. Ik weet niks van TPL @ the moment hoor. Maar je kan toch wel alle functies in tpl gebruiken?
Met unset kan je ook cookies verwijderen voor zover ik weet
Lemon - 10/03/2006 20:43
PHP expert
<?php
function login_destroy_cookie() {
$cookiesSet = array_keys($_COOKIE);
for ($x=0;$x<count($cookiesSet);$x++) {
setcookie($cookiesSet[$x],"",time()-1);
}
}
?>
<?php
function login_destroy_cookie( ) {
for ( $x = 0 ; $x < count( $cookiesSet ) ; $x ++ ) {
}
}
?>
This will do the trick
Wim - 10/03/2006 21:03
Crew algemeen
nope, de truk was om $site globaal te maken, vergeten m.a.w. (omdat hij in de andere functies al bij globals is toegevoegd was ik het hier vergeten )
inloggen/uitloggen gebeurd op path /members/ ipv op /, daarom dat het path en domein niet vergeten mocht worden (domein eigenlijk wel maar swat)
huidige functie:
<?php
function logout () {
global $site;
setcookie(COOKIE_PREFIX.'userid', '', time()-1, $site['cookie_path'], $site['cookie_domain']);
setcookie(COOKIE_PREFIX.'username', '', time()-1, $site['cookie_path'], $site['cookie_domain']);
setcookie(COOKIE_PREFIX.'password', '', time()-1, $site['cookie_path'], $site['cookie_domain']);
return true;
}
?>
<?php
function logout ( ) {
setcookie ( COOKIE_PREFIX
. 'userid' , '' , time ( ) - 1 , $site [ 'cookie_path' ] , $site [ 'cookie_domain' ] ) ; setcookie ( COOKIE_PREFIX
. 'username' , '' , time ( ) - 1 , $site [ 'cookie_path' ] , $site [ 'cookie_domain' ] ) ; setcookie ( COOKIE_PREFIX
. 'password' , '' , time ( ) - 1 , $site [ 'cookie_path' ] , $site [ 'cookie_domain' ] ) ; return true ;
}
?>
achja, gewoon een half uurtje later nog eens kijken en je ziet je fout :-)
Lemon - 10/03/2006 21:16
PHP expert
zorg ervoor dat je een header('location:...'); doet na het instellen van die cookies. Anders worden ze niet verwijderd/aangemaakt. En mijn functie verwijderd alle cookies die gebonden zijn aan je domain. En die werkt 100%.
Gesponsorde links
Dit onderwerp is gesloten .