uitloggen

Status
Niet open voor verdere reacties.

patje8

Gebruiker
Lid geworden
31 jul 2005
Berichten
436
Wanneer er iemand uitlogt zou er in de tabel member op rij online niets mogen komen. Helaas lukt dit niet bij mij.
Heb reeds volgende code:

PHP:
<?
session_start();
session_destroy();
require("config.php");
include("htmltop.php");
if(exit);{
mysql_query("UPDATE members SET online='' WHERE gebruikersnaam='$gebruikersnaam'"); 
}
include("htmlbottom.php");
?>
 
De sql is goed, maar met een "or die" weet je het zeker:
PHP:
<? 
session_start(); 
session_destroy(); 
require("config.php"); 
include("htmltop.php"); 
if(exit);{ 
mysql_query("UPDATE members SET online='' WHERE gebruikersnaam='$gebruikersnaam'")
  or die(  mysql_error() );
} 
include("htmlbottom.php"); 
?>

Nu ben ik niet zo'n php kenner, maar hoort die puntkomma er wel in deze regel?

PHP:
if(exit);{
 
Ten eerste klopt het wat Epic zegt: die ; hoort niet achter de if-statement.

Ten tweede vraag ik me af waar $gebruikersnaam naar verwijst? Die variabele moet ergens vandaan komen.. Als je wil dat die vanuit de sessie die je schijnbaar hebt gecreeerd komt dan moet ik je teleurstellen. Die sessie heb je een paar regels daarvoor "destroyed" :(

Het zou handiger zijn als je de hele code geeft, want je roept hier dingen aan die niet in dit script staan dus ik gok dat je die in config.php hebt staan. Ik ga ervanuit dat je in htmltop.php en htmlbottom.php alleen maar HTML hebt staan.

Ook zou het makkelijk zijn dat je aangeeft wat je in die sessie opslaat...
 
Inderdaad htmltop en bottom verwijst naar html.

mijn config.php is:

PHP:
<?

$host = "localhost";
$user = "user";
$pass = "pass";
$db = "database";

mysql_connect($host,$user,$pass) or die(mysql_error());
mysql_select_db($db);

// Webmaster gegevens
$webmaster_email = "patje8@telenet.be";
$webmaster_url = "http://www.website.be";

// Waar het script zich bevindt ( Zonder / op het einde )
$script_url = "http://www.website.be/Leden";

// Maximaal aantal PB's in een inbox
$maxpm = 50;

// Accounts activeren
// 0 = Zelf activeren ( d.m.v PHPMyAdmin/MySql Front )
// 1 = Activeringsmail sturen
// 2 = Automatisch activeren
$actmail = 2;

?>

mijn uitlog.php is:

PHP:
<?  
session_start();  
require("config.php");  
include("htmltop.php");

if(window.close){  
mysql_query("UPDATE members SET online='' WHERE gebruikersnaam='$gebruikersnaam'") 
  or die(  mysql_error() ); 
} 
include("htmlbottom.php");  
?>
 
mijn uitlog.php is:

PHP:
<?  
session_start();  
require("config.php");  
include("htmltop.php");

if(window.close){  
mysql_query("UPDATE members SET online='' WHERE gebruikersnaam='$gebruikersnaam'") 
  or die(  mysql_error() ); 
} 
include("htmlbottom.php");  
?>

Het lijkt er op dat $gebruikersnaam nog steeds nergens gedefinieerd wordt; is er niet toch nog meer code? Verder kan PHP niet detecteren of de gebruiker de browser afsluit, dus if(window.close) kan niet werken. ;)

Vraag verplaatst van Programmeren > SQL / MySQL naar Programmeren > PHP.
 
PHP:
<?
session_start();  
// Ik weet niet hoe je die sessie opslaat en wat je erin opslaat maar ik ga uit van het volgende:
$_SESSION['gebruikersnaam'] = "Tha Devil";
  
require("config.php");  
include("htmltop.php");

//Op de knop Uitloggen gedrukt
if(isset($_POST['submit']))
{
  //Query maken
  $logoutQuery = "UPDATE members SET online='' WHERE gebruikersnaam='$_SESSION[gebruikersnaam]'";
  //Query uitvoeren
  $logoutResult = mysql_query($logoutQuery) or die(mysql_error());
  //Sessie verwijderen
  session_destroy();
  //Bericht na uitloggen
  echo "Uitgelogd!";
}
//Niet op de knop gedrukt 
else
{
  //Simpel formulier met knop
  echo'<form action="uitlog.php" method="POST">
        <input type="submit" value="Uitloggen">
       </form>';
}
include("htmlbottom.php");  
?>

Misschien dat die werkt.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan