Page 1 sur 1

Perte d'une session

Posté : 08 déc. 2006, 10:35
par emmiedax
Bonjour à tous;

J'ai un souci un peu étrange.
Donc un fichier index.pph.
Ce fichier require barnav.inc.php

Dans ce fichier j'ai un barnav et un formulaire d'acces à des membres présents sur une table mysql.
Dans ce formulaire, lorsque l'utilisateur est reconnu, il rempli $_SESSION[id_membre] par son id dans la table.

Dans cette barnav, il y a un lien test vers essaie.php qui appelle lui même la barnav.inc.php grace à un require.

Quand je me connect depuis la page index.php, mon script reconnait bien l'utilisateur. Mais une fois qu'il est connecté, s'il va sur essaie.php alors $_SESSION[id_membre] semble être vide

Voici le lien : http://www.semas-france.com

Et voici le code barnav.inc.php

Dans le fichier index ou essaie, la fonction dans barnav.inc.php est appelée par un simple : barnav();

Merci pour votre aide précieuse.

July
<?php

function barnav(){
	if($_POST[actionForm]==""){$actionForm="afficheForm";} else {$actionForm=$_POST[actionForm];}

echo "
 				<td valign='top' width='20%'>
 					<a href='index.php'>Accueil</a><br>
 					<br><a href='essaie.php'>Qui sommes nous</a><br>
 					<br>Inscriptions<br>
 					<br>";
 					






//---------------------------Vérifié le mebre------------------------------
function deconnexion(){
		echo "deconnexion en cours";
		
	}
//---------------------------FIN                        Vérifié le mebre




//---------------------------Vérifié le mebre------------------------------
function verifieMembre(){
			require('connexion.inc.php');

		($db= mysql_connect($serveur, $utilisateur, $mot_de_passe)) or die 		($connection_serveur_impossible);
@mysql_select_db($base_de_donnees, $db) or die ($connection_base_impossible);

		$selection_utilisateur = "SELECT id FROM utilisateurs WHERE login='".$_POST[login]."' AND motdepasse='".$_POST[motdepasse]."'";
		$requete_utilisateur = MYSQL_QUERY($selection_utilisateur) or die($requete_echouee);
		$resultat_utilisateur = MYSQL_FETCH_ARRAY($requete_utilisateur);
		
		
		if($resultat_utilisateur== true){
			$_SESSION[id_membre]=$resultat_utilisateur[id];
			$actionForm="afficheMembre";
		}
		
		
		
		
		
		
		
			if($resultat_utilisateur== FALSE){
			$_SESSION[id_membre]=$resultat_utilisateur[id];
			echo "membre non existant";
		}
	}
//---------------------------FIN                        Vérifié le mebre






//---------------------------Vérifié le mebre------------------------------
function afficheMembre(){
			echo $actionForm;
			echo $_SESSION[id_membre];
			echo "<br><br><a href='?actionForm=deconnexion'>Se deconnecter</a><br><br>";
	}
//---------------------------FIN                        Vérifié le mebre












//---------------------------Affiche le formulaire d'accès------------------------------
function afficheAcces(){
			echo "
 						<form  action='' method='post'>
 							<input type='hidden' name='actionForm' value='verrifacces'>
 							<input type='text' name='login' size='21'>
 							<input type='password' name='motdepasse' size='17'><input src='images/boutons/bouton_ok.gif' type='image' alt='Connecter vous' height='20' width='20' align='absmiddle' border='0'>
 						</form>";
		}
//---------------------------FIN                        Affiche le formulaire d'accès








	if($_GET[actionForm]=="deconnexion" && isset($_SESSION[id_membre])){deconnexion();}
	if(isset($_SESSION[id_membre])){afficheMembre();}
	if(!isset($_SESSION[id_membre]) &&  $actionForm=="verrifacces"){verifieMembre();}
	if(!isset($_SESSION[id_membre]) or  $actionForm=="afficheForm"){afficheAcces();}


 				 				
 				 				if(empty($_SESSION[id_membre])){echo "session vide";}else{echo $_SESSION[id_membre];}
 				 				echo $actionForm;
 				echo "
 				</td>";
}

?>

Posté : 08 déc. 2006, 10:45
par Devether
il ne faut pas oublier de mettre session_start(); au début de chaque fichier qui utilise les sessions.

Posté : 08 déc. 2006, 11:02
par emmiedax
En début de chaque fichier ? si je le mets juste dans barnav.inc.php ça ne marchera pas ?

Posté : 08 déc. 2006, 11:10
par Devether
si dans index.php tu fais
$_SESSION['truc'] = "truc";
si tu veux récupérer la bonne valeur de $_SESSION['truc'] dans ton fichier test.php, tu dois ajouter au début de celui-ci un session_start();