Soucis de connexion avec les includes...

Eléphant du PHP | 119 Messages

22 avr. 2007, 22:40

Bonsoir,

jai un soucis que je n'arrive pas a résoudre depuis tout ce weekend.

je suis actuellement sur ma partie administration, et lorsque je me connecte, il me redirige bien vers ma partie admin, mais il ne me vois pas comme connecte.

voici un peu de code:

page index.php.
<?php
	session_start();
	include("source.php");
	Haut("Bienvenue")
?>
<div id="corps">
				<?php
				// on test si le $_GET["page"] n'est pas vide, si c'est vrai, on prend la page sinon 			on redirige vers index.php
				$page = (!empty($_GET["page"])) ? htmlentities($_GET["page"]) : "accueil";
				// Définition du array...
				$array_pages = array(
					"accueil" => "accueil.php",
					"competences" => "competences.php",
					"formations" => "formations.php",
					"etablissement" => "ficheEtablissement.php",
					"experiences" => "experiences.php",
					"entreprise" => "ficheEntreprise.php",
					"loisirs" => "loisirs.php",
					"admin" => "admin.php"
					);
				// 1. Test si la page demandée est dans le array.
				if (!array_key_exists($page,$array_pages)) include ("accueil.php");
				// 2. Test si le fichier est bien sur le FTP
				elseif (!is_file($array_pages[$page])) include ("erreur.php");
				// 3. Si les tests sont bons, on inclue la page.
				else (include($array_pages[$page]));
			?>	
			</div>
<div id="connectezVous">
				<div id="connectezVousTop"></div>
				<?php
					include("connectezVous.php");
				?>
				<div id="contactezMoiBas"></div>
			</div>
page source.php
<?php
//include("erreur.php");
function Connexion()
{
	mysql_connect("******","******","*****");
	mysql_select_db("*****");
}

function Haut($titre)
{
?>
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo($titre); ?></title>
<!-- Feuille de style par défaut -->
<?php
echo($_SESSION['connecte']);
if(isset($_SESSION['connecte']) && ($_SESSION['connecte']==1))
{
?>
<link rel="stylesheet" type="text/css" href="templates/styles/adminfirefox.css">
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="templates/styles/adminie.css">
<![endif]-->
<?php
}
else
{
?>
<link rel="stylesheet" type="text/css" href="templates/styles/firefox.css">
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="templates/styles/ie.css">
<![endif]-->
<?php
}
?>
</head>
<body>
<?php
Connexion();
}
?>

<?php
function Bas()
{
?>
</body>
</html>
<?php
}
?>

page connectezvous.php
<?php
	if(isset($_SESSION['connecte']) && (!empty($_SESSION['connecte'])) && ($_SESSION['connecte']==1))
	{
		if(isset($_SESSION['pseudo']) && !empty($_SESSION['pseudo']))
		{
?>
		<p>Bienvenue <?php echo(html_entity_decode(stripslashes($_SESSION['pseudo']))); ?></p>
		<a href="deconnexion.php"><p>Deconnexion</p></a>
<?php
		}
	}
	else
	{
		?>
			<form action="connexion.php" method="post">
				<p><input type="text" name="pseudo" value="Login" class="connexion" /></p>
				<p><input type="password" name="motdepasse" value="Mot de passe" class="connexion" /></p>
				<p><input type="image" src="templates/images/ok.png" alt="OK" class="boutonOK" /></p>
			</form>
			<div class="clear"></div>
		<?php
	}
?>
La page connexion.php fonctionne bien car la redirection vers la page index.php?page=admin se fait bien ;)

puis la page admin qui est incluse en cas de connexion.
<?php
if(isset($_SESSION['connecte']) && ($_SESSION['connecte']==1))
	{
		echo("connecte");
	}
	else
	{
		echo("pas connecte");
	}
?>
quand j'execute tout ce code, il m'affiche a l'écran pas connecte.

J'espere que vous verrez mon soucis car la j'y ai passé mon weekend.

Cordialement

Mammouth du PHP | 1353 Messages

23 avr. 2007, 02:41

La page connexion.php fonctionne bien car la redirection vers la page index.php?page=admin se fait bien ;)
C'est surement dans cette page que tu crées la variable de session non ? Car le fait que la redirection fonctionne ne veut pas dire que la variable est bien créee... Pourrais tu mettre le code de cette page ?
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphant du PHP | 119 Messages

23 avr. 2007, 07:42

voici le code de la page connexion.php
<?php
	include("source.php");
	if(isset($_POST["pseudo"]) && isset($_POST["motdepasse"]))
	{
		if(!empty($_POST["pseudo"]) && (!empty($_POST["motdepasse"])))
		{
			//Connexion à la BDD
			Connexion();
			$Pseudo = (htmlentities(addslashes($_POST["pseudo"])));
			$MotDePasse = md5(htmlentities(addslashes($_POST["motdepasse"])));
			//Si les champs sont renseignés, on cherche si la personne existe dans la BDD
			$existe = mysql_query("select count(*) AS compteur from administration where admi_pse='$Pseudo'");
			$donnees = mysql_fetch_array($existe);
			//Si $donnees renvoie 0 alors le pseudo n'existe pas.
			if($donnees["compteur"]==0)
			{
				echo("Pseudo introuvable");
			}
			//Si renvoie 1 alors le pseudo existe.
			else 
			{
				if($donnees["compteur"]==1)
				{
					//On test si le mot de passe est le bon.
					$res = mysql_query("select * from administration where admi_pse='$Pseudo'");
					$req = mysql_fetch_array($res);
					if ($req["admi_pas"]==$MotDePasse)
					{
						$_SESSION['connecte']=1;
						$_SESSION['pseudo']=$Pseudo;
						$_SESSION['IdConnecte']=$req["admi_id"];
						//On redirige...
						?>
						<meta http-equiv="Refresh" content="0;URL=index.php?page=admin">
						<?php
					}
					else
					{
						echo("Mot de passe incorrect");
					}
				}
				else
				{
					echo("Erreur lors de l'execution de la requête, veuillez réessayer.");
				}
			}	
		}
	}
?>
en gros on dirait que php ne crée pas de variable de session car dans ma page admin.php j'ai fait un echo de la variable 'connecte' et il m'affiche rien snif

cordialement

Eléphant du PHP | 119 Messages

23 avr. 2007, 08:02

j'ai trouvé...

en fait dans ma page connexion.php j'avais oublié mon session_start();

encore désolé

bonne journée...