PHP : Commentaires monolignes ne fonctionnent plus

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

7804j
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 20 Avr 2011

PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 13:44

Bonjour,

Je viens récemment de me prendre un serveur dédié chez OVH et je suis actuellement en train de programmer un nouveau site. De ce fait, il est possible que j'aie mal configuré certaines choses car il s'agit de mon premier dédié.

Mais en l'occurrence, mon problème est extrêmement bizarre : les commentaires monolignes ne fonctionnent plus... et me renvoient à chaque fois une erreur du type Parse error: syntax error, unexpected $end in /var/www/ma_page.php on line 1 quand ils sont placés dans un bloc d'instruction ou stoppent tout simplement l'exécution du reste du script s'ils se trouvent dans le corps principal

En gros, ce bout de code ne fonctionne pas et renvoit une erreur :

Code: Tout sélectionner
<?php
if(1==1)
   {
      //commentaire
   }
?>


Idem pour celui-ci :

Code: Tout sélectionner
<?php
if(1==1)
   {
      #commentaire
   }
?>


En revanche, celui-ci fonctionne :

Code: Tout sélectionner
<?php
if(1==1)
   {
      /*commentaire*/
   }
?>


Mais celui-ci stoppe le script sans renvoyer d'erreur :

Code: Tout sélectionner
<?php

//Commentaire placé avant le bloc
if(1==1)
   {
      echo 'test';
   }
?>


Quand je parle de bloc, il s'agit tout autant de conditions if que de boucles while, etc.

Voilà, j'aime bien mon ami google mais il n'a pas voulu m'aider cette fois-ci... De plus, peu importe où se trouve le commentaire, l'erreur retournée est toujours la ligne 1.

Comment une chose pareille serait possible ?

Merci d'avance,

7804j


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 14:19

Tu édites les fichiers PHP avec quel logiciel ? Quels sont les carriages return (CRLF ?) ?

7804j
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 20 Avr 2011

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 14:21

Là, avec Notepad++. Aucune idée pour les retours de chariot. Comment puis-je savoir de quels type ils sont ?


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 14:26

Dans notepad++ : preferences => New document => Format (Windows, Unix, Mac ?)
Si tu ouvres ton fichier en SSH avec vi ou nano, il a l'air good (peut-être erreur lors du transfert FTP) ?

Ehplod
WRInaute impliqué
WRInaute impliqué
 
Messages: 663
Inscription: 22 Oct 2011

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 14:41

Je ne pense pas à une erreur de transfert ou de carriages return, vu qu'il y a manifestement erreur sur le classique double slash et non sur le slach etoile.

J'y connais rien en apache, mais je pari qu'on peut lui définir le caractère à prendre en compte comme commentaire (qu'il n'est pas imposé)... C'est peut-être là le bug.


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 15:00

C'est des commentaires PHP, rien à voir avec Apache.


zeb
WRInaute accro
WRInaute accro
 
Messages: 4560
Inscription: 5 Déc 2004

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 15:12

pour infirmer ou confirmer que le problème du caractère de fin de ligne (\n, \n\r ou \r\n) n'entre pas en ligne de compte il faudrait tester un script comme ça :
Code: Tout sélectionner
<?php //commentaire ?>

et comparer avec :
Code: Tout sélectionner
<?php
//commentaire
echo "blabla";
?>

Si pas d'erreur de parse sur le premier script il faudrait approfondir cette histoire de caractère de fin de ligne.
Perso je pensais a ça aussi.

Ehplod
WRInaute impliqué
WRInaute impliqué
 
Messages: 663
Inscription: 22 Oct 2011

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 15:52

spout a écrit:C'est des commentaires PHP, rien à voir avec Apache.

Ouais... pas apache, mais l'interpreteur. Zend ?

On doit donc pourvoir dire que // sont ou ne sont pas des interpréteurs commentaire. Non ?

7804j
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 20 Avr 2011

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 22:08

Merci de vos réponses toutes très intéressantes. J'avais posté la même question sur le siteduzero et apparemment personne n'était en mesure de donner une hypothèse.

Donc en effet, le problème venait des sauts de ligne. J'ai ouvert le document en ligne de commande et j'ai vu qu'il tenait sur une ligne complète ^^'

Donc dans notepad++, c'est paramété en format "Windows" (j'ai le choix avec Windows, Mac et Unix). Est-ce que c'est dû à cela ? Est-ce qu'il me faudrait choisir Unix ?

Dans mon ancien hébergement, en mutualisé (aussi sous Apache), je n'avais pas ce problème avec pourtant la même config du notepad. Est-ce qu'il faudrait que je configure Apache pour qu'il puisse lire le retour de chariot format windows ?


spout
WRInaute accro
WRInaute accro
 
Messages: 4382
Inscription: 14 Mai 2003

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 22:28

7804j a écrit:sur le siteduzero et apparemment personne n'était en mesure de donner une hypothèse.

C'est le level au dessus ici :mrgreen:

7804j a écrit:Donc en effet, le problème venait des sauts de ligne.

Ahhh j'avais bien deviné.

7804j a écrit:Donc dans notepad++, c'est paramété en format "Windows" (j'ai le choix avec Windows, Mac et Unix). Est-ce que c'est dû à cela ? Est-ce qu'il me faudrait choisir Unix ?

Normalement avec format Windows ça fonctionne aussi. Tu peux essayer en UNIX. Mais je pense que ça viens de ton mode de transfert FTP (binary / ASCII).

7804j a écrit:Est-ce qu'il faudrait que je configure Apache pour qu'il puisse lire le retour de chariot format windows ?

Même en ligne de commande tes retours chariots ne se sont pas affichés, le problème ne vient pas Apache.

7804j
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 20 Avr 2011

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Sam Déc 10, 2011 23:58

Ok, donc effectivement, j'utilise Filezilla et j'ai le choix entre binary, ASCII ou automatique. Je suis actuellement en automatique.

Ce qui est bizarre, c'est que l'automatique n'ait pas l'air de fonctionner.

Mais si vraiment le fichier était transféré en binary à la place de ASCII ou inversement, comment se fait-il qu'il n'y ait que des problèmes au niveau des sauts de ligne ? Le fichier en entier ne devrait-il pas être corrompu ? Ou aurais-je mal compris le fonctionnement ? Il me semble que si on transforme par exemple du binaire... en binaire, ça va pas le faire (donc par exemple 0110000101110111 en 00110000001100010011000100110000001100000011000000110000001100010011000000110001001100010011000100110000001100010011000100110001).

Justement à ce propos, j'ai essayé de prendre des fichiers créés SANS le notepad++ et de les envoyer AUSSI avec filzilla, même config, même serveur et là, plus de problème. Ensuite, j'ai essayé d'éditer ces fichiers avec notepad++ et pas de problème non plus. Donc à priori, il s'agit uniquement du notepad++ dans le cas de NOUVEAUX fichiers.

Je vais essayer de voir si je trouve qqch là-dessus demain :)

7804j
WRInaute discret
WRInaute discret
 
Messages: 104
Inscription: 20 Avr 2011

Re: PHP : Commentaires monolignes ne fonctionnent plus

Message le Dim Déc 11, 2011 9:49

Voilà, là solution était apparemment uniquement du côté de Notepad++. Il fallait modifier les sauts de ligne en format UNIX. Pour l'appliquer rétroactivement à un ancien document, il fallait aller dans Edition > Convertir les sauts de ligne > Unix (LF)

Donc merci de votre aide, ça parait maintenant évident mais je n'y avais pas pensé :)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités