Aller au contenu

[Résolu][PHP] Problème bizarre avec header()


Ryu

Messages recommandés

Bonjour,

Tout est dans le titre, comme les plus perspicaces l'auront deviné :ouioui:

J'ai un code de type :

if (isset($_POST['pseudo']) && isset($_POST['password']))
{
if ($loginOK == $_POST['pseudo'] && $passwordOK == $_POST['password'])
{
	session_start();

	$_SESSION['login'] = $_POST['pseudo']; 
	$_SESSION['password'] = $_POST['password'];

	header ('location: chemin_de_mapage');

}

Ce code fonctionne très bien avec le couple FireFox(3) / WAMP.

J'ai eu besoin d'exporter mon travail sur mon mac, donc FireFox(3) / MAMP et là le header() ne fonctionne pas au lieu de me rediriger, ça me remet à la page de connexion... J'ai du contourner le truc en remplaçant le header par

		echo '<meta http-equiv="refresh" content="0;URL=chemin_de_mapage">';

J'aimerai savoir d'où ca vient, je pense que ca doit etre une configuration avec MAMP (enfin je vois que ça). Mais du coup ça m'a remis en question, sur le fait de savoir quelle fonction valait-il mieux utiliser : le header ou le meta....

Si quelqu'un a une idée :)

Lien vers le commentaire
Partager sur d’autres sites

Hmm, il est bizarre ton problème. Il n'y a normalement pas de raison que cela ne marche pas sous Mac. Quel est le format de "chemin_de_mapage" ? Le serveur Apache est-il configuré de la même manière que celui qui tourne/tournait sous Windows ?

Le format de "chemin_de_mapage", j'ai testé en relatif et en absolu.

Pour appache sur le WAMP comme le MAMP j'ai laissé par défaut.

Je vais regarder ca :)

Lien vers le commentaire
Partager sur d’autres sites

Il semblerait que j'ai trouvé ma réponse, j'avais du code html avant le header() dans un include. Et si je dis pas de bêtise il faut que la fonction header() soit placé avant le moindre code HTML.

Par contre étonnant que sous WAMP ça passe sans problème :mdr2:

Je vais passé le topic en Résolu (même si de base le problème était déjà contourné)

Sinon vaut-il mieux utiliser Header() ou <meta http-equiv> ? Lequel est le plus "propre" / conseillé ?

Lien vers le commentaire
Partager sur d’autres sites

Il semblerait que j'ai trouvé ma réponse, j'avais du code html avant le header() dans un include. Et si je dis pas de bêtise il faut que la fonction header() soit placé avant le moindre code HTML.

Par contre étonnant que sous WAMP ça passe sans problème ;)

Je vais passé le topic en Résolu (même si de base le problème était déjà contourné)

Sinon vaut-il mieux utiliser Header() ou <meta http-equiv> ? Lequel est le plus "propre" / conseillé ?

je sais pas lequel est plus propre, mais perso j'évite au max le header(), car ce qu'il sort c'est le <meta http-equiv>, donc je préfère mettre directement le meta :love:

Lien vers le commentaire
Partager sur d’autres sites

Je doutes que ça passe sous Win, si tu a quelque chose avant le header(), l'interpréteur php ne va pas être content ;)

Et pourtant c'est bien le cas aussi bizarre que ça puisse paraitre. Avant mon instruction if, j'ai un include qui contient du html. Et ca passe sous WAMP...

Bon c'est sur c'est carrément de ma faute, c'était à l'état de test, c'est une page que je devais recoder et optimiser. Mais hier j'ai du transférer le projet à la hâte sur le portable (mac) pour le montrer... Et quand j'ai vu que ça fonctionnait pas je me suis posé des questions... Et comme le temps me manquait j'ai changé le header.

je sais pas lequel est plus propre, mais perso j'évite au max le header(), car ce qu'il sort c'est le <meta http-equiv>, donc je préfère mettre directement le meta :love:

Hello Nemesis :cartonrouge:

Je pense que je vais faire de même afin d'éviter ce genre de désagrément.

Lien vers le commentaire
Partager sur d’autres sites

je sais pas lequel est plus propre, mais perso j'évite au max le header(), car ce qu'il sort c'est le <meta http-equiv>, donc je préfère mettre directement le meta ;)

Personnellement j'ai plutôt tendance à utiliser le header(), même si ça dépend de la situation. Dans le cas d'une redirection, la balise meta te force à retourner du code HTML (bon, j'imagine que ça marche bien avec du code invalide, et que ce point n'est pas important), alors qu'avec header() tu peux t'arrêter là. Après niveau optimisation tu gagnes quelques octets seulement dans ce cas, l'information de redirection se trouvant dans le header HTTP et non le corps de la page, sans s'entourer du meta.

Mais ce n'est pas un point sur lequel il faut trop se prendre la tête AMHA.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...