Probléme php (header...) connexion

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.
Configuration: Windows XP
Firefox 2.0.0.3

3 réponses

  1. le header doit etre afficher avant l'affichage
    0
    1. c'est à dire ?? merci
      0
      1. 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