2009-12-08 7 views
2

J'ai un script de processus de formulaire php qui ne sauvegardait pas correctement sur nos serveurs de test ou de test en cours mais qui fonctionnait dans mon environnement de test local. J'ai commis quelques modifications triviales au fichier et il a commencé à traiter correctement. J'ai ensuite inversé ces changements et la chose a encore fonctionné correctement.Les sauts de ligne causent des bogues php?

Je me demandais s'il y avait peut-être des sauts de ligne/des retours à la ligne ou d'autres caractères cachés qui étaient à l'origine du problème. Est-ce que quelqu'un d'autre a vécu quelque chose comme ça?

+2

Si votre syntaxe est correcte, les nouvelles lignes ne devraient pas poser de problème. Vérifiez les permissions des fichiers et assurez-vous qu'ils sont lisibles par le serveur Web - j'ai été pris au dépourvu par cela avant. – jlb

+0

Pouvez-vous clarifier "ne pas enregistrer correctement"? –

+0

Quel type d'erreurs a été causé par une version "incorrecte" du fichier? –

Répondre

0

Il se peut que vous ayez un caractère masqué avant l'ouverture de votre balise <?php.

Si vous effectuez une manipulation d'en-tête ou session_start(), cela échouera car si <?php n'est pas la première chose dans le fichier, le serveur démarrera sa réponse.

Vous devriez vérifier vos journaux d'erreur php.

+0

Je suis son collègue. Le journal des erreurs ne donne rien de pertinent. –

1

Mes premières pensées pencherais pour les choses suivantes pour vérifier:

  • Si vous obtenez somekind d'en-tête déjà envoyé des erreurs de vérification pour BOM -Bytes ou autre omble chevalier invisible au début de votre script
  • Est-ce Si vous utilisez des caractères non-anglais pour les noms html/form ou des variables php, vérifiez l'encodage de tous les fichiers. Il doit être le même partout
  • Google à peu près pour les paramètres de fin de ligne php. Il y a quelque temps, j'ai entendu parler de quelque chose qui pourrait se produire si les fondations étaient mauvaises.

EDIT: Sinon, il serait helpfull si vous nous donnez quelques exemples de code.

+0

+1 pour la marque de commande d'octet; peut être une vraie douleur puisque PHP l'évaluera comme sortie. – Dereleased

+0

Peut être lié à ceci: http://bugs.php.net/bug.php?id=8858 –

Questions connexes