Non-actualisation après authentification

Petit nouveau ! | 5 Messages

10 mars 2011, 16:17

Bonjour,

J'ai un soucis auquel je n'arrive pas à remédier.
J'ai un système d'identification intégré à ma page principale.
Cette page inclue toutes les autres en fonction d'une variable passée par URL, ainsi que l'image d'en-tête du site.
Lorsqu'une personne arrive sur le site, j'inclus une page qui demande de s'identifier et dans la barre au-dessus, un formulaire d'authentification est présent. Je le remplis, je valide et j'ai bien ma phrase "Vous êtes connecté en tant que..." qui apparait.
Mais ma page inclue reste la même ("Veuillez vous authentifier..."), ainsi que l'image d'en-tête alors que je suis logué...
Elles auraient dû changer à la connexion... Cela fonctionne uniquement si je clique sur un lien, mais je ne devrais normalement pas avoir à faire cela...

Voici mon code de la page index.php :
<?php
 
	session_start();
 
	if(isset($_GET['action']) && $_GET['action'] == 'logout') {
		$_SESSION = array();
		session_destroy();
		session_start();
	}
 
	if(!isset($_GET['id'])) $_GET['id'] = 1;
	if(!isset($_GET['mid'])) $_GET['mid'] = 1;
	if(!isset($_SESSION['login'])) $_GET['id'] = "nc";
	
?>
 
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>TITRE DU SITE</title>
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
		<meta http-equiv="Content-type" content="image/png" />
		<meta http-equiv='Content-Style-Type' content='text/css' />
		<link rel="stylesheet" type="text/css" href="css/main.css" />
		<script type="text/javascript" src="js/jquery-1.2.3.min.js"></script>
		<script type="text/javascript" src="js/jquery.easing.min.js"></script>
		<script type="text/javascript" src="js/jquery.lavalamp.min.js"></script>
		<script type="text/javascript">
			$(function() {
				$(".lavaLamp").lavaLamp({
					fx: "backout",
					speed: 700
				})
			});
		</script>
	</head>
	<body>
		<div id="wrapper">
 
			<?php
 
				if(!isset($_SESSION['login'])) echo "<div id='headerTopNC'></div>";
				 else echo "<div id='headerTop'></div>";
 
			?>
 
			<div id="navbar">
				<div id="lavaWrapper">
					<ul class="lavaLamp">
						<li <?php if($_GET['id'] == 1) echo "class='current'"; ?>><a href="?id=1">Accueil</a></li>
						<li <?php if($_GET['id'] == 2) echo "class='current'"; ?>><a href="?id=2">Lien A</a></li>
						<li <?php if($_GET['id'] == 3) echo "class='current'"; ?>><a href="?id=3">Lien B</a></li>
						<li <?php if($_GET['id'] == 4) echo "class='current'"; ?>><a href="?id=4">Lien C</a></li>
						<li <?php if($_GET['id'] == 5) echo "class='current'"; ?>><a href="?id=5">Lien D</a></li>
					</ul>
				</div>
			</div>
			<?php
 
				if($_GET['id'] == 3) include("includes/menu_lienB.php");
				if($_GET['id'] == 4) include("includes/menu_lienC.php");
				if($_GET['id'] == 5) include("includes/menu_lienD.php");
 
			?>
		</div>
		<div id="memberbar">
        	<a class="account" href="subscription.php">Cr&eacute;er un compte</a>
			<?php include("includes/login.php"); ?>
		</div>
		<div id="content">
			<?php
 
				if($_GET['id'] == "nc") include("includes/non_connecte.php");
				if($_GET['id'] == 1) include("includes/accueil.php");
				if($_GET['id'] == 2) {} // la suite des pages...
 
			?>
		</div>
		<div id="footerBottom">
		</div>
		<p class="w3c">
			<a href="http://validator.w3.org/check?uri=referer">
				<img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0 Strict" height="31" width="88" />
			</a>
			<a href="http://jigsaw.w3.org/css-validator/check/referer">
				<img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="CSS Valide !" />
			</a>
		</p>
	</body>
</html>
Une idée ??

Merci

ViPHP
xTG
ViPHP | 7331 Messages

10 mars 2011, 17:57

Cela arrive sur certains hébergement.
J'ai déjà eu le soucis chez free et je n'ai jamais réussi à régler le problème.
J'ai donc rusé et je passais par une redirection intermédiaire.

Petit nouveau ! | 5 Messages

10 mars 2011, 18:07

Ahh tu me rassures un peu mais pas entièrement :roll:

Effectivement pour le moment le site se trouve sur Free, mais même en local avec les dernières versions de EasyPHP ça me le fait... :?

Peut-être y a t'il un autre endroit où je puisse tester ?

Petit nouveau ! | 5 Messages

10 mars 2011, 22:44

J'ai réussi à corriger en partie le problème en remontant au début de mon index.php la phase de test du login.
Maintenant mon header s'affiche bien.
Par contre la page inclue n'est toujours pas bonne même en remontant le code...

Un indice ?

ViPHP
xTG
ViPHP | 7331 Messages

11 mars 2011, 08:57

Tu dois modifier les variables entre ton header et la page inclue. ;)

Petit nouveau ! | 5 Messages

11 mars 2011, 14:58

C'est à dire ??
Modifié en dernier par x86master le 14 mars 2011, 22:31, modifié 1 fois.

ViPHP
xTG
ViPHP | 7331 Messages

11 mars 2011, 15:26

Imaginons :
<?php
session_start();
if( ....)
{
  // identification
  $_SESSION['id'] = ...
}

include("header.php"); // vérification connecté = OK
include("page.php"); // vérification connecté = ERREUR
Un tel script impliquerai comme erreur que la page header.php modifie les variables de session.
Le bug le plus bête mais qui arrive souvent est lors d'une condition :
if( $_SESSION['id'] = 0 )
  echo "Vous n'êtes pas connecté.";
Un simple égal à la place d'un double égal et tu as perdu ta connexion pour le reste de la page par exemple.

Petit nouveau ! | 5 Messages

14 mars 2011, 22:47

Je ne vois pas trop comment modifier ma page... #-o