Sessions PHP fonctionne pas.

JM -  
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


Voila 6hrs que je cherche a faire marcher mon code PHP mais rien a faire.

J'ai chercher sur plusieurs forum personne ne semble avoir ce prob.

Je m'explique:

J'ai une page nommé membres.php avec un formulaire dessus pour se loguer.

<?php
    session_start();
    $loginOK = false;
    $errorMessage = '';
	$db = mysql_connect('localhost', 'MESINFOS', 'MESINFOS');
	mysql_select_db('db_website',$db);			
    // Test de l'envoi du formulaire
    if($_POST) 
	{
		// Les identifiants sont transmis ?
        if(!empty($_POST['login']) && !empty($_POST['pass'])) 
		{
			$sql = "select PASSWORD, NOM, SEXE, PRENOM, PLEVEL from table_utilisateurs where EMAIL='".$_POST['login']."'";
			$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
			$data = mysql_fetch_assoc($req);
			// On vérifie que l'utilisateur existe bien.
			if (mysql_num_rows($req) > 0)
			{
				if ($_POST['pass'] == $data['PASSWORD'])
				{
   					$loginOK = true;
				}
				else
				{
					$loginOK = false;
					$errorMessage = 'Mauvais login / password.';
				}
			}
			else
           	{
				$loginOK = false;
				$errorMessage = 'Compte introuvable.';
			}
		}
		else
		{
			$loginOK = false;
			$errorMessage = 'Un champ est rester vide.';
		}
	}
	else
	{
		$loginOK = false;
		$errorMessage = '';
	}
	if ($loginOK)
	{
		$_SESSION['login'] = $_POST['login'];
		$_SESSION['sexe'] = $data['SEXE'];
		$_SESSION['nom'] = $data['NOM'];
		$_SESSION['prenom'] = $data['PRENOM'];
		$_SESSION['plevel'] = $data['PLEVEL'];
		$url = "membres.php?".session_name()."=".session_id(); 
		header("Location: $url");
		//header('Location: membres.php');
		exit();
	}
?>

HTML HTML HTML HTML HTML

<?php
		if(!isset($_SESSION["login"]))
		{
		echo '<p><form action="membres.php" method=\'post\'>
				<p align="center" class="style3">Cette section est réservé exclusivement aux membres du site web.<br></p>
				<p align="center" class="style3">&nbsp;</p>
				<p align="center" class="style3">'.$errorMessage.' Merci de recommencer.ll ', $_SESSION['login'] ,'</p>
				<p align="center" class="style3">&nbsp;</p>
				<p align="center" class="style1">Entrer vos informations</p>
				<table width="214" border="0" align="center">
  					<tr>
    					<td rowspan="2" class="style2"><img src="img/accueuil/cadena.gif" width="47" height="44"></td>
    					<td height="24" class="style2">Login</td>
   					<td><input type="text" name="login" maxlength="250"></td>
  					</tr>
  					<tr>
    					<td height="24" class="style2">Password</td>
    					<td><input type="password"name="pass" maxlength="10"></td>
  					</tr>
  					<tr>
    					<td height="26" colspan="3" align="center"><div align="right">
   						<input type="submit" value="Entrer"></div>
					</td>
					</tr>
				</table>
				<p align="center"><a href="signup.html">S\'inscrire</a></p>
				</form></p>';
		}
		else
		{
		echo 'Vous êtes bien logué ',$_SESSION['login'],' ',$_SESSION['nom'],' ',$errorMessage;
		}
	?>



Comme vous pouvez le voir si on se logue avec les bon renseignements on est renvoyer sur la page membres.php mais cette fois si on affiche Vous êtes bien logué.... au lieu du formulaire de login.

Tout va bien jusqu'ici.

Le probleme survient quand je change de page. Exemple, je suis logué dans une session sur la page membres.php et quand je click sur un lien me menant vers la page nouvelles.php la session fou l'camp.

J'ai essayé avec 3 pages différentes contenant le MÊME code et 2 des pages sur 3 conserve ou récupere la session.
Membres.php (C'est ok la var $_SESSION["login"] contient qqchose)
Index.php (C'est ok la var $_SESSION["login"] contient qqchose)
Nouvelles.php (la var $_SESSION["login"] contient rien)

voici le petit bout de code dans Index.php et Nouvelles.php

<?php 
session_start(); 
echo 'session : ' , $_SESSION['login'] , '<br /> '; 
?>



Le plus étrange dans tout ca c'est que lorsque je vide les cookie et les fichiers temporaires c'est Index.php qui fonctionne mal et Nouvelles.php qui fonctionne...

Besoin d'un exorciste!!!!

Merci
A voir également:

1 réponse

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
toutes tes pages de la zone membre doivent avoir ceci tout au début (attention sans caracteres , balises html, espaces avant)

<?php 
session_start(); 
if(!isset($_SESSION['login']) || $_SESSION['login'] ==""){
	header('Location:index.php');
	exit();

}else{
?>
la partie html du contenu de ta page html nouvlelles.php
<DOCTYPE.........
<html>
</html>
<?php
}
?>
0