Retour chariot : OSX, Linux , CR, CR LF... - PHP - Programmation
Marsh Posté le 08-04-2009 à 13:18:34
vertigo77 a écrit : Bonjour, |
En clair ?
- Message d'erreur ?
- Page blanche ?
- Résultat non conforme aux attentes ?
- Autre (préciser) ?
Tu as essayé avec un include sur un fichier qui contiendrait juste un truc genre echo "OK"; ?
Marsh Posté le 08-04-2009 à 13:38:35
Souvent les problèmes d'include sont dus aux chemins des fichiers. Pour rappel, il est recommandé d'tuliser des chemins relatifs plutôt que des chemins absolus, car la racine n'est pas celle du disque, mais celle qui est indiquée dans le fichier de configuration d'Apache.
Marsh Posté le 08-04-2009 à 19:17:19
Pas de message d'erreur, simplement mon menu que j'appelle en include n'apparait pas (il apparait par contre sur mon serveur unix)
Ma page je j'appelle en include se trouve dans le même dossier donc pas de problème de lien.
Marsh Posté le 09-04-2009 à 09:31:34
Si c'est un problème de retour à la ligne, alors il faudrait essayer avec un autre fichier ayant des retours à la ligne différents, comme cela on serait fixé. Le transfert de fichier se fait habituellement par FTP, et il faut choisir le mode Ascii au lieu du mode binaire quand on transfert un fichier comme un include qui devrait contenir du texte ordinaire.
Peut-être que le fichier d'include inclus d'autres includes, ou a besoin de certaines ressources.
Une cause d'erreur qui n'a pas encore été citée, est la confusion possible entre majuscules et minuscules. Unix est très stricte sur ce sujet, alors que Windows ne l'ai pas toujours.
Marsh Posté le 09-04-2009 à 09:54:43
macgawel a écrit : Tu as essayé avec un include sur un fichier qui contiendrait juste un truc genre echo "OK"; ? |
+1 pour le nommage des fichiers.
Dans l'idéal : utiliser un nom de fichier composé uniquement de caractères alphanumériques (sans accents) et des signes - et _
Marsh Posté le 09-04-2009 à 23:26:15
et attention aussi au sens des "/" dans le nom de fichier à inclure, il faut mettre des "/" et non des "\", bien que windows mette des "\"
Marsh Posté le 12-05-2009 à 16:09:07
Un mois après je n'ai toujours pas réussit à faire fonctionner les includes sous OSX
Pourtant je ne fais rien de particulier et je ne vais pas chercher le fichier dans un autre répertoire (donc pas de probleme de slash )? pas d'accent non plus i caracteres speciaux
<?php include('menu.php'); ?>
Marsh Posté le 12-05-2009 à 16:22:31
Je n'ai jamais essayé avec "?>" juste à la fin de la ligne d'include. Peut-être que ça marche, mais je me dit que "?>" indique la fin d'un bloc PHP et que, peut-être, je n'en suis pas sûr, le contenu de l'include serait limité par la fin du bloc. En tous cas, il me parait plus naturel de ne pas séparer, par "?>", la ligne d'include des autres lignes de code PHP.
Marsh Posté le 12-05-2009 à 17:17:21
ITT : fail
vertigo77 a écrit : Apres recherche Je soupçonne les retours chariot d’être en cause, pourtant OSX et linux utilise le même type de retour chariot (LF) contrairement à Windows (CR LF). |
Les retours chariot changent rien.
olivthill a écrit : Pour rappel, il est recommandé d'tuliser des chemins relatifs plutôt que des chemins absolus |
Surtout pas, à cause du bordel de l'include path. Utiliser des chemins absolus, en utilisant une constante par exemple genre ROOT_PATH ou je sais pas
olivthill a écrit : Le transfert de fichier se fait habituellement par FTP, et il faut choisir le mode Ascii au lieu du mode binaire quand on transfert un fichier comme un include qui devrait contenir du texte ordinaire. |
Moi je transfert tout en binaire. Retours chariots "\n" y compris sous windows, et pas de conversion louche
tomsoft a écrit : et attention aussi au sens des "/" dans le nom de fichier à inclure, il faut mettre des "/" et non des "\", bien que windows mette des "\" |
On peut utiliser DIRECTORY_SEPARATOR pour être au top
vertigo77 a écrit : Un mois après je n'ai toujours pas réussit à faire fonctionner les includes sous OSX |
Là il manque surtout un truc, c'est l'affichage des erreurs. Fout un E_ALL histoire de voir.
Ou mieux, dégage la fonction "include" de merde et utilise require. C'est pareil, mais ça lance une vraie erreure fatale (pas un warning de chiotte).
Marsh Posté le 08-04-2009 à 00:31:52
Bonjour,
Plutôt débutant en PHP j’ai un petit souci à résoudre
Je créé quelques Pages en PHP avec l’éditeur de texte smultron sous macosx. J’ouvre ensuite ces pages avec mon serveur Apache (Wamp ou serveur apache intégré à macosx) et la je me rend compte que les « include » ne fonctionnent pas.
Si j’upload ces pages sur mon serveur distant sous linux aucun problème, mes includes fonctionnent.
Apres recherche Je soupçonne les retours chariot d’être en cause, pourtant OSX et linux utilise le même type de retour chariot (LF) contrairement à Windows (CR LF).
Lorsque j’ai créé mes pages smultron était en automatique au niveau de la gestion du retour chariot. Le soucis c’est que je ne comprends pas vraiment le fonctionnement de ces retours chariots, visuellement je ne vois rien dans le code, ca doit donc agir ailleurs mais ou ?
Tout fonctionne sur le serveur distant, mais pour faire des tests c’est bien plus sympa en local.. Surtout quand je n’ai pas le net…
Si vous aviez une solution…