Probléme php (header...) connexion

Fermé
mehdi9833 Messages postés 88 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 mars 2010 - 16 févr. 2010 à 09:06
dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 - 5 mars 2010 à 14:45
Bonjour,

Voila j'ai un message d'erreur qui me bloque depuis 1j, j'ai parcouru plein de forum et je n'ai AUCUNE solution, voici mon message d'erreur lorsque je lance mon site intrnet :
PHP Warning: Cannot modify header information - headers already sent by (output started at E:\wwwroot\catmat\accueil.php:19) in E:\wwwroot\catmat\accueil.php on line 84

Apparamment cela viendrait de mon header car jai mi session start () au début de mon formulaire...
Mais comment contourner le probléme ?
voici mon script (accueil.php) :

<?php
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
include("fonctions.php");
$cnx = mysql_pconnect($serveur, $admin, $pass);
$res=mysql_select_db("$base");

/* page d’accueil de l’application qui permet la connexion */
session_start();

?>
<html>
<head>
<title> formulaire d'identification </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css.css" />
</head>
<body>

<?php
if ((empty($_SESSION['identifiant']) OR empty($_SESSION['pass']))) // on vérifie que l'utilisateur n'est pas déja connecté
{ if ((empty($_POST['identifiant']) OR empty($_POST['pass']))) // si l'utilisateur ne vient pas de se connecter
{
?>
<br><br><br><center><h1>Connexion à l'application</h1>
<br/>
<form method="POST" action="accueil.php" name="connexion"> <!-- on affiche l'interface de connexion -->
<table style="text-align: left" border="0" cellpadding="4" cellspacing="2">
<tbody>
<tr>
<td>Identifiant :</td>
<td><input type="text" name="identifiant" /></td>
</tr>
<tr>
<td>Mot de passe :</td>
<td><input type="password" name="pass" /></td>
</tr>
<tr>
<br>
<td><br>    <button value="envoi" name="envoi" type="submit">Valider</button></td>
<td><br>    <button value="reset" name="reset" type="reset">Annuler</button></td>
</tr>
</tbody>
</table>
</form>
<?php }
elseif ((isset($_POST['identifiant']) AND isset($_POST['pass']))) // si l'utilisateur vient de se connecter
{
$_SESSION['identifiant'] = $_POST['identifiant']; // on enregistre son identifiant et son mot de passe
$_SESSION['pass']= $_POST['pass'];

panneau_accueil($cnx); // on affiche la page d'acceuil
}
}
else
{
panneau_accueil($cnx);//Si l'utilisateur est déja connecté, on affiche la page d'accueil
}
?>
</body>
</html>

<?php
function panneau_accueil($connexion)
{

if($connexion)
{
$req="select mot_de_passe,num_categorie,libelle from utilisateurs where identifiant like '".$_SESSION['identifiant']."'";
$reponse = mysql_query($req);

$donnees = mysql_fetch_array($reponse);
$mdp=$donnees['mot_de_passe'];
$_SESSION['libelle']=$donnees['libelle'];
$_SESSION['categorie']=$donnees['num_categorie'];
if ($mdp !=null)
{
if ($_SESSION['pass'] == $mdp)
{
// ----------------------------------------------------
// redirection vers l'interface suivant la catégorie
// ----------------------------------------------------
header ("Location: recherche-article.php");
}
else // mauvais mot de passe
{
echo "<div id=\"corps\"><br /><br /><h2>Mauvais mot de passe</h2><br /> <a href=\"accueil.php\">Retour</a></div>";
session_destroy();
}
}
else // pas de mot de passe trouvé, l'identifiant n'existe pas dans la base de données
{
echo "<div id=\"corps\"><br/><br /><h2>Identifiant inexistant</h2><br/><a href=\"accueil.php\">Retour</a></div>";
session_destroy();
}
}

}
?>

Merci de votre aide.

3 réponses

dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 104
21 févr. 2010 à 18:05
le header doit etre afficher avant l'affichage
0
mehdi9833 Messages postés 88 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 mars 2010 4
5 mars 2010 à 14:10
c'est à dire ?? merci
0
dream666 Messages postés 735 Date d'inscription mardi 8 juillet 2008 Statut Membre Dernière intervention 24 février 2014 104
5 mars 2010 à 14:45
c'est a dire que sa header ("Location: recherche-article.php"); et tout les autre header doive et lu avant l'affiche html du genre sa <h1>Connexion à l'application</h1>
0