Header ne fonctionne pas (php)

Fermé
david - 6 juil. 2007 à 14:20
 Sparkle - 17 sept. 2012 à 19:14
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
A voir également:

8 réponses

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
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
6 juil. 2007 à 15:13
Donc t'as pas vraiment testé mon code :p
0
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
C'est ça il faut coller : à location comme ceci location:
0
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Salut MoArmel,

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

Merci
0
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
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
6 juil. 2007 à 14:46
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
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
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
6 juil. 2007 à 15:07
As-tu essayé ce que je t'ai donné ?
0
Salut spark,

Oui j'ai essayer ce que tu m'as dit......mais toujours rien :(
0
s.spark Messages postés 2485 Date d'inscription vendredi 29 octobre 2004 Statut Contributeur Dernière intervention 13 février 2018 618
6 juil. 2007 à 15:12
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