Inlogsysteem sputtert tegen

Status
Niet open voor verdere reacties.

Anbert

Gebruiker
Lid geworden
24 nov 2006
Berichten
29
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 >>>

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); 
}
?>
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 :

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:
Ik snap nog niet helemaal waar session_start() nou precies staat..
 
Ik snap nog niet helemaal waar session_start() nou precies staat..

Die heb ik ondertussen al overal neergezet. In de include waar ik alle functies in heb staan. Bovenaan iedere pagina, voor de <head> tag, erna, ertussen... Ik de logfiles kwam ik een fout tegen. Iets dat de headers al verzonden waren. Mocht je precies willen weten wat hier staat laat het ff weten. Zit nu achter zo'n dikke firewall dat ik niet in Plesk kan komen bij mijn provider :P Thanx voor je reactie
 
session_start (); kan niet gebruikt worden als er output verzonden is.

http://www.php.net/session_start

Had de session start achter onderstaande code gegeven.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Zag het eerst niet als output maar dat is het dus toch.... Dat krijg je met ongeschoolde programmeurs.... DANK!!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan