En waarom zet je een wachtwoord in de sessie? Wachtwoorden gebruik je bij het inloggen en daarna nooit meer. Het is dus volkomen onzinnig om dit gegeven in een sessie te zetten met ook nog eens het risico dat je sessie wordt gehijackt.
Warning: session_destroy(): Trying to destroy uninitialized session in /home/borisbez/domains/xxx.nl/public_html/login/loguit.php on line 3
Je bent succesvol uitgelogd!
ik zou niet sesion_destroy() gebruiken maar unset($_SESSION['sessie_naam']);
voor het geval als je later met andere sessies gaat werken!
die fout heb ik namelijk gemaakt met een spel dat als je een crime had gepleegd dan moest je een uur wachten en die tijd werd opgeslagen in een sessie dus wat deden die gasten die logten gewoon uit en daarna weer in en dan konden ze gewoon weer een crime doen:S en ik ondertussen maar zoeken:S{-_-}
@Devon: Door de browser te sluiten vernietig je ook alle sessies. Jij hebt dus nog steeds een lek in jouw crime-spel zitten. Gebruik een database om het tijdstip op te slaan en controleer bij iedere crime of er al voldoende tijd is verstreken t.o.v. de vorige crime. Zie de vele datum- en tijdfuncties van MySQL in hoofdstuk 12.5 van de handleiding.
<?php
session_start();
if (!isset($_SESSION['user'])) {
echo '<fieldset><legend>Login</legend>';
echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
echo '<input type="text" class="text" size="12" name="user" /> ';
echo '<input type="password" class="text" size="12" name="pass" /> ';
echo '<input type="submit" name="submit" value="Log in!" class="text" />';
echo '</form>';
echo '</fieldset>';
if (!isset($_POST['submit'])) {
include("connect.php");
$sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 1) {
$_SESSION['user'] = $_POST['user'];
echo 'Je bent succesvol ingelogd! <br />';
echo '<a href="index.php">Klik hier om door te gaan</a>';
} else {
die('<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>');
}
}
} else {
echo 'Je bent al/nog ingelogd! Klik <a href="loguit.php">hier</a> om uit te loggen.';
}
?>
Dit is nu mijn code, maar nu is het zo, dat als de sessie niet is ge-set, en post['submit'] ook niet, dat hij weergeeft: Verkeerde gebruikersnaam of verkeerd wachtwoord!
Probeer opnieuw. Dat moet ik niet hebben! Hoe verander ik dat?
Als ik het zo lees zou het moeten werken als je het uitroepteken (!) op regel 11 verwijderd. Je wilt namelijk juist dat dat stuk code uitgevoerd wordt als er wel op submit geklikt is...