Sessie probleem

Status
Niet open voor verdere reacties.

Kevin We

Gebruiker
Lid geworden
8 sep 2005
Berichten
119
Beste, ik ben een inlogformuliertje aan het maken dat werkt met sessies. Geen cookies omdat je deze kan blokkeren en dan moet je dit weer gaan uitleggen aan mensen die er niets van kennen dus werk ik met sessies.

Nu heb ik een formulier op een pagina staan met 2 velden een gebruikersnaam en wachtwoord. Bij het klikken op de knop wordt de controle gedaan af alles klopt en dit werkt allemaal fijn. Echter bij het aanmaken en/of controleren van de sessie gebeurt er iets waardoor hij geen sessie vindt.


pagina login.php: hier gebeurdt de controle op wachtwoord en gebruikersnaam (werkt allemaal) en wordt de sessie aangemaakt (probleem??)
PHP:
<?php

$gebruikersnaam = $_POST['login'];
$wachtwoord = $_POST['paswoord'];

$server = "localhost";  //server 
$login = "dibadbe_KevinWe";    //login 
$password = "3650dibad";    //paswoord 
$database = "dibadbe_dibadCompetitie";   //database 

$conn=mysql_connect($server,$login, $password) or die(mysql_error()); 
mysql_select_db($database,$conn) or die(mysql_error()); 

if (isset($_POST['Inloggen'])) {
	if (empty($gebruikersnaam) || empty($wachtwoord)) {
		header("Location: http://www.dibad.be/index.php");
	}
	else {
			// Al ingelogd? 
 			if(isset($_SESSION['gebruikersnaam'])) { 
    			header("Location: http://www.dibad.be/inloggen/loginHome.php");
 			} 
  			else { 
		     	$sql = 'SELECT Login, Paswoord FROM Gebruikers 
             	WHERE Login="'. $gebruikersnaam .'"'; 
      			$qry = mysql_query($sql) or die(mysql_error()); 
			    $row = mysql_fetch_array($qry); 
				
					// bij fout het wachtwoord terug proberen
                    if ($row['Paswoord'] != $wachtwoord) { 
                       	header("Location: http://www.dibad.be/index.php");
                    } 
                     
					//ingelogd
                    else { 
                     // Sessie starten. 
        				session_start(); 
       				 // Sessie aanmaken 
       				 $_SESSION['Login'] = $row['Login']; 
					 header("Location: http://www.dibad.be/inloggen/loginHome.php");
	                     
                    } 

    		} 
  	} 
}
?>


pagina loginHome.php: deze pagina is de homepagina van het inloggedeelte maar hier gaat er iets mis bij het controleren of de sessie al bestaat

PHP:
<?php 
if(isset($_SESSION['Login'])) { 
 	echo "hier ingelogd";
	//code die ingelogde mensen te zien krijgen
} 
else { 
  //Degenen die niet zijn ingelogd worden doorgestuurd naar de loginpagina 
 	echo "er is iets fout";
  exit; 
}



De kans dat er iets héél stoms mis is, is redelijk groot. Ik ben een beginner met php en experimenteer redelijk veel en zie wel waar ik ergens raak maar deze krijg ik echt niet opgelost.


MvG Kevin
 
Je gebruikt :

Code:
/ Al ingelogd?
            if(isset($_SESSION['gebruikersnaam'])) {
                header("Location: http://www.dibad.be/inloggen/loginHome.php");

maar je hebt ervoor nergens session_start(); geschreven.
Je kan je session array niet aanspreken alvorens je session te starten
 
ahzowe ... dus je moet die sessie ook iedere keer starten voor de controle?

Ik was er vanuit gegaan dat je de sessie alleen moest starten bij het aanmaken ervan...
 
Op elke pagina waarin je een sessie gebruikt moet session_start(); aanwezig zijn. Het handigste is om dit meteen als 2e regel in te vullen dan krijg je ook geen errors.

Include je een bestand op een pagina waarop je al session_start(); gebruikt dan hoef je de functie niet meer in het te includen bestand te zetten.
 
bedankt voor de tip(s). Ik wist dus niet dat je op iedere pagina die sessie moest starten. Het werkt trouwens perfect nu!

Misschien kan ik dit topic laten openstaan vermits ik ongetwijfeld nog wel iets zal tegenkomen wat niet werkt en het een beetje gek is om elke keer een topic te openen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan