Mes headers fonctionnent en local mais pas en distant ? Pourquoi ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Mes headers fonctionnent en local mais pas en distant ? Pourquoi ?

par uspy62 » 05 nov. 2008, 17:55

J'ai trouvé de où venait l'erreur, en fait j'avais un espace blanc après mon ; je l'ai supprimé et maintenant ça fonctionne ....
J'espère que ce post en aidera beaucoup puisque j'ai vu pas mal de monde sur le net qui avait le même soucis ;)

Merci à tous pour votre aide.

par albat » 05 nov. 2008, 17:42

As-tu accès au php.ini de ton serveur chez ton hébergeur ?

par uspy62 » 05 nov. 2008, 17:19

ba disons que je suis chez un hebergeur donc comment je fais pour afficher les erreurs ?

par yaug » 05 nov. 2008, 17:16

hum...
La seule fois ou j'ai pu avoir le même genre de problème c'est quand le distant n'affichait pas les erreurs mais considérait les warning comme bloquant.

Bref, c'est sans doute une configuration différente.

Le coup de la page blanche me fait clairement penser à des erreurs non affichées.
Tu as regardé de ce coté?

par uspy62 » 05 nov. 2008, 16:41

Ca ne change rien, toujours la page blanche.

Mais je me répète au risque d'être soulant mais y a t-il une raison pour que ça fonctionne en local et pas en distant ? (au niveau du php.ini ou autres fichiers de configuration)

par Sékiltoyai » 05 nov. 2008, 16:23

Enlève le :

Code : Tout sélectionner

?> <?php

par uspy62 » 05 nov. 2008, 16:17

alors voici le code de ma page ou il y a le header :
<?php include("haut.php");?>
<?php
if(panier_vide() && !isset($_SESSION['panier'])){
	header("Location: ".racine_site());
}
et voici le code de ma page haut.php
<?php
session_start();
include("connexion.php");
include("fonctions.php");
?>
Je l'ai réduit au minimum et il ne fonctionne toujours pas...

Dans fonctions.php je n'ai que des fonctions, certaines ont des "echo" mais ils sont à l'intérieur des fonctions.

Et dans connexion.php, je n'ai que la connexion à la base de données.

par Sékiltoyai » 05 nov. 2008, 15:57

Peux tu fournir le code exact (si possible minimal) ?

par uspy62 » 05 nov. 2008, 15:50

Oui j'ai regardé, je n'ai abosulement aucun echo ou autre chose qui pourrait géner le header.

Le truc assez bizarre, c'est qu'en local et en distant j'ai le même code, en local ça passe et en distant non.

par yaug » 05 nov. 2008, 15:24

hum..
Question bete.
Cette histoire de page blanche...

Les erreurs php sont bien visible?

Car si elle ne sont pas visible, tu dois avoir un écho ou autre avant ton header("location:..."); ce qui rend impossible tout reloc vu qu'on ne doit rien envoyer avant d'avoir fait un header.

Cherche de ce coté je pense.

par uspy62 » 05 nov. 2008, 14:37

Alors j'ai testé la fonction racine_site() et ça m'affiche bien la racine du site :
http://www.monsite.fr/repertoire/

Ma racine est dans un répertoire.

Et le résultat est une page blanche.

J'ai testé en mettant :
header("Location: http://www.google.fr");
Mais rien à faire j'ai toujours la page blanche, j'ai bien vérifié je n'ai pas de contenu html avant mon header.

Voici pour info les seules lignes avant mon header :
<?php include("haut1.php");?>
et voici le code dans le fichier haut1.php :
<?php session_start();?>
<?php include("connexion.php");?>
<?php include("fonctions.php");?>
J'ai fait un dernier test en supprimer le include("haut1"); et je l'ai remplacé par mes deux includes :
<?php include("template1/connexion.php");?>
<?php include("template1/fonctions.php");?>

Et là ça fonctionne, mais ça ne résout pas mon problème puisque sur tout le site mes headers fonctionnent comme ça, donc pourquoi avec le include, le header ne passe pas et quand je supprimer le include ça fonctionne?

par caroube » 05 nov. 2008, 13:59

Peut-être un 'echo racine_site()' permettrait de voir où se trouve le problème ?

par zeus » 05 nov. 2008, 13:38

Quel est le résultat ? page blanche ?

par uspy62 » 05 nov. 2008, 13:21

Alors la machine en local : j'utilise windows XP avec wamp server 2.0
En distant c'est linux, c'est tout ce que je sais.

Et mon code, le voici :
if(exist_post('numero') && post('numero')==1 && !panier_vide() && exist_get('page')){
	if(exist_post('accord') && post('accord')==1){
	$_SESSION['numero']=1;
	header("Location: ".racine_site()."fini-panier/"); 
	}else{
	$_SESSION['numero']=0;
	header("Location: ".racine_site()."panier/"); 
	}
}

par yaug » 05 nov. 2008, 13:07

Tu aurais un peu plus d'information?
Genre le code par exemple?

La machine en local et la machine distante sont quoi ?

Car là...

Merci de préciser :?