Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/12/2011, 11h08   #1
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Par défaut Incompatibilité de code dans 2 environnements

Bonjour,

J'ai un script qui fonctionne bien sur un serveur mac et lorsque je le déplace vers un serveur debian chez mon hébergeur, je me retrouve avec une page blanche.

Après quelques recherches, j'ai trouvé que c'est la ligne suivante qui bloque :

Code :
1
2
3
4
5
6
$headers = <<<EOH
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Priority: 1 (Highest)
From: $from
EOH;
Si je laisse cette ligne sur mon serveur Debian : page blanche
Si je la retire, mon script s'exécute sur Debian.

Je ne trouve pas d'erreur sur cette partie de code.

Merci à vous.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2011, 11h35   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

C'est étrange !
Regardes ici C'est vieux mais est-ce que tu as essayé en changeant le 7 bits en 8 bits ?
Dans tous les cas, je pense que c'est une clause du header qui pose problème à debian
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2011, 13h16   #3
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Citation:
Envoyé par rawsrc Voir le message
Bonjour,

C'est étrange !
Regardes ici C'est vieux mais est-ce que tu as essayé en changeant le 7 bits en 8 bits ?
Dans tous les cas, je pense que c'est une clause du header qui pose problème à debian
Merci j'ai essayé mais rien.

De plus lorsque je mets

Code :
1
2
3
ini_set("log_errors", 1);
        ini_set("display_errors", 1);
        error_reporting(E_ALL);
je n'ai aucun message.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2011, 13h28   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Est-ce que tu as essayé d'envoyer tes en-têtes un par un ?
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2011, 13h38   #5
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 728
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 728
Points : 3 295
Points : 3 295
Salut

Sur Mac, as tu essayé de voir le contenu de l'entête (firebug par exemple) pour voir comment c'est reçu (ou envoyé, peu importe).

S'il ton entête comporte une erreur, Apache coté Mac corrigerait peut être tout ou en partie afin de renvoyer le contenu HTML pour au bout avoir quelque chose.
Ca peu aider à corriger après. va savoir.

Coté Débian, ça serait plus restrictif, Apache estimerait l'erreur trop grande pour renvoyer quoi que ce soit.

As tu tenter le coup de tout supprimer l'entête. Là tu auras un rendu.
Puis après rajouter ligne par ligne, et essayer à chaque fois.
Et là, espérer trouver la ligne qui causerait problème.


Pure hypothèse, mais vraiment.

En tout cas j'en connais pas assez coté entête pour détecter une éventuelle erreur.
Par ailleurs, il y a une inconnue, car on a pas la valeur de $from, l'erreur pourrait être là.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2011, 15h01   #6
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Merci, C'est la présence du code qui pose problème pas son exécution.

En effet c'est lors du chargement du script pour l'affichage du formulaire de saisie que ça ce passe alors que je n'utilise même pas ce code qui se trouve dans une fonction qui ne sera appelé que lorsque je validerai mon formulaire.

Je regarde tout de même quelle partie bloque en laissant le code source ligne par ligne.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2011, 15h13   #7
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
En testant ligne par ligne, dès le 1er essai ça ne fonctionne pas :

Code :
1
2
$headers = <<<EOH
EOH;
J'ai donc modifié l'écriture de cette partie de code comme ceci :

Code :
1
2
3
4
$headers = "Content-Type: text/plain; charset=UTF-8; format=flowed";
    $headers .= "Content-Transfer-Encoding: 7bit";
    $headers .= "X-Priority: 1 (Highest)";
    $headers .= "From: ".$from;
Et là tout va bien
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h42.


 
 
 
 
Partenaires

Hébergement Web