[PHP] header()

Résolu
Bonjour,

Je sais que la fonction de redirection header() ne fonctionne pas si il y a le moindre envoi au naviguateur avant, mais ma fonction ne marche toujours pas.

Voici mon formulaire qui permet de saisir un mot de passe:
<form name="frmMDP" action="verif.php" method="POST" OnSubmit="return Rempli();">
   Mot de passe : 
   <input type="password" name="txtMDP" />
   <p><input type="submit" VALUE="Valider" NAME="BtValider" />
   <input type="reset" value="Annuler" name="BtAnnuler" />
</form>

La fonction rempli() return true si le champdu mot de passe est rempli, sinon false.

Mon fichier verif.php (vérifie si le mot de passe est bon, et redirige) :

<?
	include('cnx.php');//connexion

	if($_POST["txtMDP"]=="informatique")
	{	
		header("location:info.php");
	}
	else
	{
		header("location:acces_info.php");
	}

	//fermeture de la connexion
	mysql_close($cnx);

?>

Cordialement,
Sandrine
Configuration: Windows XP
Internet Explorer 6.0

9 réponses

  1. Ajoute un exit; après header("location:acces_info.php"); et header("location:info.php");
    0
    1. J'ai toujours la même erreur sur le header...
      Warning: Cannot modify header information - headers already sent by (output started at /var/www/impressions/cnx.php:4) in /var/www/impressions/verif.php on line 5
      
      0
      1. Enlève mysql_close($cnx); et réessaye.
        0
        1. Bon j'ai résolu mon problème.

          En fait je n'avais pas besoin de me connecter à la base de donnée vu que je n'avais pas besoin d'y accéder dans verif.php.

          J'ai donc enlevé include('cnx.php'); et mysql_close($cnx);

          Depuis, ça marche, mais ce que je ne comprends pas, c'est que ça aurait quand même du marcher, vu qu'il n'y avait aucun affichage...

          Merci quand même à toi.
          0
          1. Désolé de ne pas avoir pu t'aider plus. Je ne suis pas un fan des include j'ai souvent des problème avec ^^
            Bonne continuation.
            0
            1. Un problème : il suffit que un de tes fichiers includes ait un caractère d'espacement et le header ne marchera pas.

              par exemple si au début ou à la fin de ton fichier il y a un blanc avec le <? ou après le ?> (des fois on ne ne voit pas), ou un saut de ligne
              0
              1. Justement, il n'y en avait pas...

                Enfin bref c'est pas grave, tant que ça marche ^^
                0
                1. il doit forcément y avoir un truc. généralement on finit toujours par trouver le truc bête qu'on voyait pas...
                  0