Voilà mon problème. J'ai un site normal avec un menu de navigation normal aussi. Par contre, certains utilisateur peuvent entrer leurs login/pass pour accèder à la section cachée du menu. Cette dernière n'est visible que si l'utilisateur est connecté.
Je marche par les sessions, si aucune session n'exsite alors je n'affiche pas le deuxième menu. Par contre, si la session existe le deuxième menu apparaît en fesant disparaître le formulaire qui à son tour fera apparaître un bouton pour se déconnecter.
---- Si la variable session n'existe pas ----
-> Menu 1
-> Form Login/Pass
---- Si la variable session existe ----
-> Menu 1
-> Menu 2
-> Form Deconnexion
Alors, voilà. Lorsque je clique sur le bouton de déconnexion, je suis suposer être redirigé vers la page deconnexion.php pour une sorte de validation, mais ça me créer une erreur comme celle-ci.
Warning: Cannot modify header information - headers already sent by (output started at /chemin_de_mon_site/accueil.php:81) in /chemin_de_mon_site/accueil.php on line 86
Ligne 81 = Ouverture de la baliser php <?php
Ligne 86 =
header('Location: deconnexion.php');
__Hyposthèse numéro 1__
Je pense qu'il me fait cette erreur car quelque chose à déjà été appellé dans la page lorsque je me connecte. (Voir code plus bas) Donc théoriquement, en appelant un deuxième élément comme ma déconnexion la redirection ne peut avoir lieu car elle à déjà été fait quelque part. Alors, erreur!
__Hypothèse numéro 2__
Une erreur de programmation dans ma gestion de contenu avec les session fait défaut. (Vérifier le code plus bas)
CODE PHP
<?php
session_start();
//Code d'identification pour les bases de données.
$adresse_serveur = "adresse";
$nom_de_la_bd = "comment_sa_marche";
$identifiant = "non_sérieux?";
$password = "quelque chose";
# On se connecte à la bd
$connexion = mysql_connect($adresse_serveur, $identifiant, $password) or die("Impossible de se connecter : " . mysql_error());
mysql_select_db($nom_de_la_bd,$connexion) or die("Une erreur est survenue : " . mysql_error());
?>
<html>
//J'ai enlevé le début du html pour une meilleure lisibilité
<!-- HEADER -->
<!-- FIN HEADER -->
<!-- CORPS DE LA PAGE -->
<!-- COLONNE GAUCHE -->
<div class="division_gauche">
<p><img src="images/nav_princ.jpg" /></p>
<ul id="nav_principale">
<li><a href="#">Retour à l'accueil</a></li>
<li><a class="active" href="#">Contenu des trousses</a></li>
<li><a href="#">Approche pédagogique</a></li>
<li><a href="#">Débuter au primaire</a></li>
<li><a href="#">Débuter au secondaire</a></li>
</ul>
<?php
if ( isset( $_POST['deconnexion']) )
{
//Destruction de la session
header('Location: deconnexion.php');
}
?>
<?php
//Si le bouton connexion est cliqué
if(isset($_POST['connexion']))
{
//Récupère les infos postées et code le mot de passe
$identifiant = $_POST["identifiant"];
$password = $_POST["password"];
//$motDePasse = md5($motDePasse);
// Si les champs ne sont pas vide
if($identifiant != "" && $password != "")
{
//Select les informations relier au pseudo
$requete = "select password, no_id from trifox where identifiant = '".$identifiant."';";
$resultats = mysql_query($requete, $connexion) or die("Une erreur est survenue : " . mysql_error());
$details = mysql_fetch_assoc($resultats);
if($details['password'] != $password)
{
echo'Erreur, votre mot de passe est incorrect!';
}
else
{
$req = "select identifiant, no_id from trifox where password = '".$password."';";
$resultats = mysql_query($req, $connexion) or die("Une erreur est survenue : " . mysql_error());
$details = mysql_fetch_assoc($resultats);
$_SESSION['connexion'] = $identifiant;
}
}
}
if (isset($_SESSION['connexion']))
{
echo'
<p><img src="images/securisee.jpg" /></p>
<ul id="nav_secondaire">
<li><a href="#">Les énergies renouvelables</a></li>
<li><a href="#">Protection de l’environnement</a></li>
<li><a href="#">Physique et mathématiques</a></li>
<li><a href="#">Les énergies vertes</a></li>
<li><a href="#">Plans</a></li>
<li><a href="#">Mécanique, électricité</a></li>
</ul>
<p><img src="images/connexion.jpg" /></p>
<form method="post" style="margin-left:7px;">
<p>Identificant : '.$_SESSION['connexion'].'</p>
<input type="submit" name="deconnexion" value="Se déconnecter" />
</form>
';
}
else
{
echo'
<p><img src="images/connexion.jpg" /></p>
<form method="post" style="margin-left:7px;">
<p>Identifiant</p><input type="text" name="identifiant" valute=""/>
<p>Mot de passe</p><input type="password" name="password" valute=""/>
<p><input type="submit" name="connexion" value="Connexion"/></p>
</form>
';
}
?>
</div>
<div id="bot_menu"></div>
<!-- FIN COLONNE GAUCHE -->
</div>
<!-- FIN CORPS DE LA PAGE -->
</div>
</body>
</html>
C'est à vous de m'aider à régler mon problème!
