Header ne fonctionne pas (php)

david -  
 Sparkle -
Bonjours,

J'utilise easyPhp.

Version de php : 4.3.10

Voici le code :

<?php

	if(isset($_GET['mdp']) AND isset($_GET['prenom'])) {
		header("location : http://".$_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/mapage.php");

	}
	else {
		$classe = htmlspecialchars($_GET['classe']);
	};
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
</head>

<body>
<h1>Bienvenu dans la classe de « secondaire <?php echo $classe ?></strong> »</h1>
<form action="classe.php">
<label>Prenom :         </label>
<input type="text" name="prenom" /><br />
<label>Mot de passe : </label><input type="password" name="mdp" /><br />
<input type="submit" value="valider" />
</form>
</body>
</html>


Je ne sais pas pourquoi mais mon header ne marche pas. J'ai mis un echo pour voir si il rentrais dans ma condition et il m'as belle et bien écrit quelque choses.

J'ai même mis mon header tout de suite après le <?php ......mais absolument rien. Il semble ne pas exécuter le header.

Donc ma question est de savoir pourquoi à votre avis il ne veut pas et qu'est-ce que je peut faire pour le résoudre.

Merci beaucoup
Configuration: Windows XP
Firefox 2.0.0.4

8 réponses

  1. david
     
    Dsl tout le monde

    Je suis stupid. tout ce qui faisait boguer c'est les ':' après le Location.

    Donc si jamais ya qq1 qui a ce même problème ba faite gaffe a mettre les : coller sur Location

    Merci a tous
    7
    1. s.spark Messages postés 2528 Statut Contributeur 618
       
      Donc t'as pas vraiment testé mon code :p
      0
    2. david
       
      lollll oui mais après j'lai remis comme à l'ancienne et j'ai juste coller les : sur le Location

      mais merci spark pour tes conseil
      0
    3. Sparkle
       
      C'est ça il faut coller : à location comme ceci location:
      0
  2. lexdc
     
    si je peux me permettre un conseille, quand tu fais :
    header("location : http://".$_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/mapage.php");

    essai de faire une variable intermediaire, ton code sera plus clair et tes erreurs moins nombreuse.

    explique nous le but de ton code, je pense qu'une solution alternative s'impose. (peut que je me trompe lol)
    0
  3. david
     
    Salut lexdc.

    Le but de mon code est de valider le nom de l'utilisateur et le mot de passe.

    Donc la page du formulaire = classe.php

    un coup le formulaire envoyer = classe.php

    Il vérifie si le mot de passe et le nom d'utilisateur est correct. Si oui, il nous envoie à la page maPage.php. Si non, il reste dans la même page et il affiche un message d'erreur.

    Si pour tout le monde sa fonctionne cette méthode. Et bien peut-être que mon serveur ya quelque choses de mal configurer :S.

    Donc jespère que j'ai été bien claire.

    Merci
    0
  4. MoArmel
     
    Bonjour, j'ai eu il y quelques temps un problème similaire, peut être est ce que ça pourra t'aider :

    J'enregistrai mes fichiers toto.php encodés en UTF-8 et ce n'était pas compatible avec header vu qu'avant toute chose mon fichier contenait les symboles d'encodage...

    Bon courage.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. david
     
    Salut MoArmel,

    Pourrait tu me dire en quelle encodage tu la mis pour que ca puisse marcher?

    Merci
    0
    1. MoArmel
       
      Heu ! Maintenant je laisse l'encodage en ascii (j'utilise Crimson Editor, c'est top bien et top gratuit) mais je suppose qu'il existe plusieurs types d'encodages qui sont compatibles avec php.

      Bye.
      0
  7. s.spark Messages postés 2528 Statut Contributeur 618
     
    Salut
    header("location : http://".$_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\')."/mapage.php");

    C'est quoi tous ca ?

    Tu peux mettre simplement :
    header("Location: http://".$_SERVER['HTTP_HOST']."/mapage.php");


    Edit :

    y'a un truc qui se balade dans ton code (;):

    lse {
    $classe = htmlspecialchars($_GET['classe']);
    };
    0
  8. david
     
    Salut s.spark,

    Pour ta solution je ne suis pas trop sur (http://fr.php.net/header).

    Mais j'ai lu quelque choses https://www.developpez.net/forums/d105113/php/langage/debat-encodage-caracteres-speciaux-iso-8859-1-vs-utf8/

    Il dise quelque choses à propos de BOM. Sa me dit absolument rien mais tk. J'ai dreamweaver mx 2004 et l'option BOM est décocher donc je ne crois pas que sa l'as rapport à ça. Mais si quelqu'un pensse le contraire dit le moi

    Merci
    0
    1. s.spark Messages postés 2528 Statut Contributeur 618
       
      As-tu essayé ce que je t'ai donné ?
      0
    2. david
       
      Salut spark,

      Oui j'ai essayer ce que tu m'as dit......mais toujours rien :(
      0
  9. s.spark Messages postés 2528 Statut Contributeur 618
     
    Au fait là tel qu'est ton code tu vérifies que les variable $_GET['mdp'] et $_GET['prenom'] sont bien vide (si oui ok sa passe).
    0