Ik heb een loginscript gemaakt wat uitstekend werkt, dit wordt op iedere pagina geïnclude zodat je op elke pagina een klein menuutje ziet om in te kunnen loggen.

Dit inlogscript is het volgende:
<?php
if (isset($_POST['login']))
{
	if(inloggen($_POST['gebruikersnaam'], $_POST['wachtwoord']) == true)
	{
		echo 'U bent inlogd als '.$_SESSION['username'];
	}
	else
	{
		echo 'Inloggen is niet gelukt!';
	}	
}
else
{
	if (isset($_SESSION['username']))
	{
		echo 'U bent ingelogd als '.$_SESSION['username'];
	}
	else
	{
	?>		
		<form method="post">
		<div id="inloggen">
        <div id="inloggen_top">
        Mijn account beheren!
        </div>
        <div id="inloggen_links">
        	<ul>
        		<li>Gebruikersnaam</li>
        		<li>Wachtwoord</li>
           	</ul>
       	</div>
			<div id="invullen">
				<ul>
					<li><input type="text" name="gebruikersnaam" /></li>
					<li><input type="password" name="wachtwoord" /></li>
				</ul>
			</div>
			<div id="login">
			<input type="submit" name="login" value="Login" />
			</div>
		</div>
		</form>
	<?php
	}
}
?>


Het uitlogscript is dit:
<?php
include('config.php');

unset($_SESSION);
?>

<meta http-equiv="refresh" content="0; url=index.php">


Toch werkt het uitloggen niet, hoe komt dit?
<?
session_start();

session_unset();
session_destroy();
?>
ik kende die session_unset(); nog niet, maar hij werkt wel, vreemd, want ik heb talloze uitlogscripts met unset($_SESSION); gemaakt.

Bedankt in ieder geval!
want ik heb talloze uitlogscripts met unset($_SESSION); gemaakt

Dat is dan niet heel erg verstandig. Zie ook de waarschuwing die op php.net gegeven wordt:
php.net
Do NOT unset the whole $_SESSION with unset($_SESSION) as this will disable the registering of session variables through the $_SESSION superglobal.

Reageren