Het lukt me niet om een uitlog button toe te voegen.

Hoe moet ik dit toepassen in dit script?


<?php
session_start(); //Zorg dat deze weer bovenin staat!

if ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien


	$query = 'SELECT * FROM partnernaam ORDER BY achternaam';
	$result = mysql_query($query) or die ("Sorry maar ik kan de partnernaam niet weergeven");
	
	while($row = mysql_fetch_object($result)){
	?>
<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
	<tr>
		<td><?php echo ''.$row->naam_id.'&nbsp;'.$row->voornaam.'&nbsp;'.$row->achternaam.''; ?></td>
	</tr>
	<tr>
		<td>
		<?php
	$querygegevens = 
	'SELECT
	pn.*,
	pg.*
	FROM partnernaam AS pn
	JOIN
	partnergegevens AS pg
	ON pn.naam_id = pg.naam_id
	GROUP BY pg.naam_id
	ORDER BY pn.achternaam';
	$resultgegevens = mysql_query($querygegevens) or die ("Sorry maar ik kan de partnergegevens niet weergeven");
	
	while($rowgegevens = mysql_fetch_object($resultgegevens)){
	?>
	<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
        	<tr>
        		<td><?php echo $rowgegevens->websitenaam ; ?></td>
        		<td><?php echo '<a href="'.$rowgegevens->url.'" target="_blank">'.$rowgegevens->url.'</a>' ; ?></td>
        		</tr>
        	<tr>
        		<td><?php echo '<a href="mailto:'.$rowgegevens->email.'" target="_blank">'.$rowgegevens->email.'</a>' ; ?></td>
        		<td><?php echo '<a href="'.$rowgegevens->url_terug.'" target="_blank">'.$rowgegevens->url_terug.'</a>' ; ?></td>
        		</tr>
        	<tr>
        		<td><?php echo 'Toegevoegd:&nbsp;'.$rowgegevens->datum ; ?></td>
        		<td><?php echo 'Ingeschreven nieuwsbrief:&nbsp;'.$rowgegevens->nieuwsbrief ; ?></td>
        		</tr>
        	<tr>
        		<td><?php echo 'Categorie:&nbsp;'.$rowgegevens->cat_id ; ?></td>
        		<td><?php echo 'SubCategorie:&nbsp;'.$rowgegevens->sub_id ; ?></td>
        		</tr>
        	</table>
			<?php
			} //einde binnenste while lus
			?></td>
	</tr>
</table>
<?php
} //einde buitenste while lus
}else{

?>
<form name="form1" id="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>" >
	<table width="350" height="150" border="0" align="center" cellpadding="4" cellspacing="0" class="tabellogin">
    	<tr bgcolor="#CCCCCC">
    		<td height="15" colspan="2"><h1>Login Scherm Admin </h1></td>
   		</tr>
    	<tr>
    		<td><strong>Naam:</strong></td>
    		<td><input name="naam" type="text" size="20" maxlength="20" /></td>
   		</tr>
    	<tr>
    		<td><strong>Wachtwoord:</strong></td>
    		<td><input name="wachtwoord" type="password" size="20" maxlength="10" /></td>
   		</tr>
		<tr align="center">
    		<td colspan="2"><input name="submit" type="submit" value="Inloggen" /></td>
   		</tr>
   	</table>
</form>
<?php
}
?>
<?php
if ($_SESSION['login'] && isset($_POST['uitloggen']) {
session_destroy();
//hier een header refresh, en je bent uitgelogd
}
?>
Het lukt niet....
Elsy, wat lukt niet, wat gebeurt er wel en krijg je ook foutmeldingen? Ik wil je best verder helpen, maar zo weet ik natuurlijk niets.

Je kan trouwens ook gewoon een linkje maken, waarin je de get variabele uitloggen meegeeft (hoeft niet persé een knop te zijn)

vb.
<a href="?uitloggen" name="uitloggen">Log Uit</a>

En dan in je pagina:

<?php
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
session_destroy();//vernietig sessie
}
//dit is je eigen code weer, alleen in een elseif ipv een if
elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {

}
?>
Elsy schreef op 18.02.2007 14:14
Het lukt niet....

Hoi Elsy, jij kan beter dan dit. Wees een beetje duidelijker dan kunnen wij er misschien wat mee.
Sorry heren, zag het even niet meer zitten.
Ga even kijken naar het script van Robert en probeer het nog een keer.
Omdat ik al eerder heb ingelogt weet ik niet of het werkt.

Ik ben nu ingelogd en als ik dan klik op de link uitloggen kom ik op de index pagina terecht met in de adresbalk: http://www.kijk-vergelijk.nl/?uitloggen

Als ik dan weer op de "admin" link klik kom ik gewoon weer meteen terecht op de pagina van de partners. Dus zonder te hoeven inloggen.
Ik had de cookies al verwijderd.

Je kunt testen door op mijn site te kijken onder het kopje: info en contact en dan onderaan op het puntje (.) te klikken.

http://www.kijk-vergelijk.nl/
?uitloggen ......... moet die geen waarde hebben?

?uitloggen=true

Wat doe je met die $_GET['uitloggen']?

Edit: Typo.
Zo heb ik het nu staan:

<?php
if(isset($_GET['uitloggen']) && isset($_SESSION['login'])){
session_destroy();//vernietig sessie
}elseif ((($_POST['naam'] == "") && ($_POST['wachtwoord'] == "")) OR $_SESSION['login']) {
$_SESSION['login'] = TRUE;
//Als het wachtwoord goed is laat dan de resultaten zien

echo '<a href="?uitloggen" name="uitloggen">Log Uit</a><br />';
?>
Voordat je session_destroy() gebruikt zou je ook nog even alle sessievariabelen moeten unsetten:
<?php
$_SESSION = array();
session_destroy();
?>

Het is echter niet eens nodig om session_destroy() te gebruiken aangezien er in principe niets op tegen is dat de huidige sessie behouden blijft. Het wel of niet ingelogd zijn is namelijk afhankelijk van het bestaan van een bepaalde sessievariabele en van het bestaan van een sessie zelf.

Zie ook php.net onder [php]session_destroy[/php].
Zet voor session_destroy() dit even neer (zou niet moeten uitmaken, maar toch):

$_SESSION = '';

Reageren