Vérification en php / Authentification

Fermé
juracitepark Messages postés 58 Date d'inscription mardi 3 novembre 2009 Statut Membre Dernière intervention 8 avril 2013 - Modifié par juracitepark le 25/04/2011 à 12:45
 le père - 27 avril 2011 à 00:09
Bonjour,

J'ai un souci avec l'un de mes code pour vérifier si ce que l'on a rentré comme informations est correcte :

Warning: Cannot modify header information - headers already sent by (output started at /public_html/connection.php:2) in /public_html/connection.php on line 105

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<?php 
// On active les sessions : 
session_start(); 
  
// On inclus les données de connexion : 
include('./inc/donnees.php'); 
  
// On créait la session 'essai' si elle n'existe pas : 
if(!isset($_SESSION['essai'])) $_SESSION['essai'] = 0; 
?> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> 
<head> 
<title>Kit graphique Unreal 3</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<meta name="Description" content="Kit graphique Unreal 3 by Zwatla" /> 
<meta name="Keywords" content="Kit Graphique, kit graphique Unreal, Zwatla" /> 
<link rel="stylesheet" type="text/css" href="style.css" /> 

</head> 



<body> 

<div id="site"> 


<div id="header"></div> 

<div id="main"> 

<div id="side"> 

<div class="bloc_gauche"><img src="images/expo001.jpg" alt=""/> 
<p> Iriure consequat vulputate vel, iusto duis, qui vero, feugiat suscipit dolor.</p> 
</div> 

<div class="bloc_gauche"><img src="images/expo001.jpg" alt=""/> 
<p> Iriure consequat vulputate vel, iusto duis, qui vero, feugiat suscipit dolor.</p> 
</div> 

<div class="bloc_gauche"> 
<img src="images/expo001.jpg" alt=""/> 
<p> Iriure consequat vulputate vel, iusto duis, qui vero, feugiat suscipit dolor.</p> 
</div> 

<div class="bloc_gauche"><img src="images/expo001.jpg" alt=""/> 
<p> Iriure consequat vulputate vel, iusto duis, qui vero, feugiat suscipit dolor.</p> 
</div> 

</div> 



<div id="menu"> 
<h2><span>Téléchargements</span></h2> 
<ul> 
<li><a href="#">Accueil</a></li> 
<li><a href="inscription.html">Inscription</a></li> 
<li ><a href="connection.html" id="on">Connection</a></li> 
<li><a href="#">Concours</a></li> 
<li><a href="#">Logiciels</a></li> 
<li><a href="#">Tutos</a></li> 
<li><a href="#">Liens</a></li> 
<li><a href="#">Contact</a></li> 
</ul> 
</div> 


<div id="contenu"> 


<div class="post"> 
<p class="titre-txt-gauche">Connecte toi !</p> 
<p class="titre-txt-droite">Connection</p> 
</div> 

<div class="texte"> 

<?php 
echo '<h1>Connexion...</h1>'; 
// On teste si le formulaire a été soumis : 
if((isset($_POST['identifiant'])) && (isset($_POST['mot_de_passe']))) 
{ 
 $membre_existe = false; 
 $identifiant = $_POST['identifiant']; 
 $mot_de_passe = $_POST['mot_de_passe']; 
  
 // Requete visant à vérifier l'existance de l'identifiant : 
 $requete = "SELECT 'MOT_DE_PASSE' "; 
 $requete .= "FROM 'user' "; 
 $requete .= "WHERE IDENTIFIANT = '".mysql_real_escape_string($identifiant)."'"; 
  
 // On cherche si l'identifiant existe et on récupère son mot de passe : 
 if(list($Mot_de_passe) = mysql_fetch_array(mysql_query($requete))) 
  
 // On teste le mot de passe en fonction de l'identifiant : 
 if(md5($mot_de_passe) == $Mot_de_passe) 
 { 
  $membre_existe = true; 
  
  // On créait les sessions 'identification' et 'mot_de_passe' : 
  $_SESSION['identifiant'] = $identifiant; 
  $_SESSION['mot_de_passe'] = md5($mot_de_passe); 
  
  // Puis on redirige le visiteur vers la page d'accueil de l'espace perso : 
  header('Location: ./index.html'); 
  exit(); 
 } 
  
 if(!$membre_existe) 
 { 
  // Si celles-ci ne sont pas identiques, on incrémente le nombre d'essai : 
  $_SESSION['essai']++; 
  
  // Puis on redirige le visiteur vers la page d'authentification : 
  header('Location: ./connection.html'); 
  exit(); 
  
  //!\ Cette redirection est nécessaire /!\ 
 } 
} 
// Fin de la connexion SQL : 
mysql_close(); 
?> 

</div> 


<div class="post"> 
<p class="titre-txt-gauche">Kit Graphique compatible IE6, IE7, Firefox, Safari...</p> 
<p class="titre-txt-droite">News 002</p> 
</div> 

<div class="texte"> 
<p>Iriure consequat vulputate vel, iusto duis, qui vero, feugiat suscipit qui dolor. Sed odio diam  
tation nulla, facilisi molestie, feugiat blandit, ex luptatum vel consequat luptatum.  
Ut vulputate ullamcorper in euismod nisl wisi sit lobortis aliquam esse consequat. Tation dolor vel duis dolore tation praesent. </p> 
<p>Iriure consequat vulputate vel, iusto duis, qui vero, feugiat suscipit qui dolor. Sed odio diam  
tation nulla, facilisi molestie, feugiat blandit, ex luptatum vel consequat luptatum.  
Ut vulputate ullamcorper in euismod nisl wisi sit lobortis aliquam esse consequat. Tation dolor vel duis dolore tation praesent. </p> 
<p class="gras">Par krek le 29 Novembre 2006</p> 
</div> 

</div> 


<div id="footer"><p> 
Design css-xhtml by kulko & krek de Zwatla.com  
<a href="http://www.zwatla.com">Web créations</a> - <a href="http://www.zwatla.com">Kits Graphiques</a> - 
<a href="http://www.zwatla.com">Emoticônes</a>  
- <a href="http://www.zwatla.com">Myspace Templates</a> 
- <a href="http://www.jeux-internet.be/cgi-sys/suspendedpage.cgi">Jeux internet</a> 
</p> 

</div> 
</div> 
</div> 


</body> 
</html> 




A voir également:

1 réponse

Bonjour

étonnant que tu n'aies pas cette erreur, plus tôt, dès le session_start()
Les deux fonctions header() et session_start provoquent l'envoi d'informations dans les en-têtes HTTP (à ne pas confondre avec le <header> HTML).
Or, dès que tu envoies des données au client, c'est à dire dès ton <!DOCTYPE , les en-têtes HTTP sont envoyés et on passe aux données. On ne peut plus utiliser les fonctions qui font appel aux en-têtes.
Il faut donc appeler ces fonction obligatoirement avant d'envoyer des données, ce qui ne pose d'ailleurs aucun problème.
0

Discussions similaires