Beste mensen,
Ik heb een inlogsysteem gemaakt die op het eerste gezicht goed leek te werken. Nu kreeg ik reacties dan anderen niet konden inloggen. De volgende dag wou ik zelf weer inloggen en dat ging ook niet goed. Geen foutmeldingen maar ik was ook niet ingelogt. Een tijdje later probeerde ik het op mijn andere computer en dat ging weer feilloos. Zelf heb ik het idee dat er iets niet goed gaat met de sessies. Ik log niet uit, misschien gaat het wel goed als ik dat wel had gedaan maar ik heb geen pc's meer om te testen... Ik heb de wat code hieronder gezet met hoe ik het op de website heb draaien.
<<< Gebruikt op in te loggen >>>
<<< Gebruikt om te zien of iemand is ingelogt >>>
Deze functie staat in een include die bij elke pagina wordt aangeroepen, in deze include staat ook als eerste regel de "session_start();". Ik roep de functie als volgt aan :
Uitloggen kan met www.anbert.nl/uitloggen.php. Hierin staat :
Kan iemand mij vertellen wat hier misgaat? De website waar het om gaat is www.anbert.nl
Mocht je de code wat duidelijker willen zien bekijk dan de post in een tekstbestandje :
http://www.anbert.nl/vraag.txt
Alvast bedankt en groet,
Anbert
Ik heb een inlogsysteem gemaakt die op het eerste gezicht goed leek te werken. Nu kreeg ik reacties dan anderen niet konden inloggen. De volgende dag wou ik zelf weer inloggen en dat ging ook niet goed. Geen foutmeldingen maar ik was ook niet ingelogt. Een tijdje later probeerde ik het op mijn andere computer en dat ging weer feilloos. Zelf heb ik het idee dat er iets niet goed gaat met de sessies. Ik log niet uit, misschien gaat het wel goed als ik dat wel had gedaan maar ik heb geen pc's meer om te testen... Ik heb de wat code hieronder gezet met hoe ik het op de website heb draaien.
<<< Gebruikt op in te loggen >>>
Code:
if (IsSet($HTTP_POST_VARS['submit'])) {
if (!IsSet($HTTP_POST_VARS['wachtwoord']) || !IsSet($HTTP_POST_VARS['inlogcode'])) {
exit("Je moet wel een password/user combinatie invullen.");
}
$CombiCheckQ = mysql_query("SELECT inlogcode,id,email,voornaam FROM gebruikers
WHERE inlogcode = '".addslashes($HTTP_POST_VARS['inlogcode'])."'
AND wachtwoord = '".md5($HTTP_POST_VARS['wachtwoord'])."'
AND actief = 1 ");
if (mysql_num_rows($CombiCheckQ) == 0) {
exit("Een ongeldige user/pass combinatie is ingevoerd.");
}
$gegevens = mysql_fetch_array($CombiCheckQ);
$HTTP_SESSION_VARS['inlogcode'] = $gegevens['inlogcode'];
$HTTP_SESSION_VARS['id'] = $gegevens['id'];
$HTTP_SESSION_VARS['email'] = $gegevens['email'];
$HTTP_SESSION_VARS['voornaam'] = $gegevens['voornaam'];
if (headers_sent())
{
echo "<script language=\"JavaScript\">";
echo "document.location='index.php'";
echo "</script>";
} else {
header("location: index.php");
}
exit();
} else {
*FORMULIER*
} ?>
<<< Gebruikt om te zien of iemand is ingelogt >>>
Code:
<?
function LoggedIn() {
global $HTTP_SESSION_VARS;
if (!IsSet($HTTP_SESSION_VARS['id'])) {
return (0);
}
return (1);
}
?>
Code:
<? if (!LoggedIn()) {
*niet ingelogt*
} else {
*wel ingelogt*
}
?>
Uitloggen kan met www.anbert.nl/uitloggen.php. Hierin staat :
Code:
<?
foreach ($HTTP_SESSION_VARS as $var => $val)
{
unset($HTTP_SESSION_VARS[$var]);
}
session_destroy();
echo "Je bent uitgelogd";
?>
Kan iemand mij vertellen wat hier misgaat? De website waar het om gaat is www.anbert.nl
Mocht je de code wat duidelijker willen zien bekijk dan de post in een tekstbestandje :
http://www.anbert.nl/vraag.txt
Alvast bedankt en groet,
Anbert
Laatst bewerkt: