Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Question de syntaxe

10 réponses
Avatar
Raphael
Bonjour,

je suis actuellement chez OVH en hébergement où la version de php est
5.2.17 et j'ai un problème de syntaxe. Lorsque j'écris mon code de la
façon suivante :

<?php
echo toto;
?>

j'obtiens l'erreur :

Parse error: syntax error, unexpected T_STRING in
/homez.713/neworker/www/test.php on line 1

qui disparait si j'ecris :

<?
echo toto;
?>

sans le php donc. De même, si j'écris des commentaires dans mon code
avec un double slash :

<?
// test echo
echo toto;
?>

Là, plus rien ne s'affiche à l'écran. Est-ce normal?

Merci pour votre réponse.

Raphael

10 réponses

Avatar
Denis Beauregard
Le Thu, 02 May 2013 19:58:24 +0200, Raphael
écrivait dans fr.comp.lang.php:

Bonjour,

je suis actuellement chez OVH en hébergement où la version de php est
5.2.17 et j'ai un problème de syntaxe. Lorsque j'écris mon code de la
façon suivante :

<?php
echo toto;
?>

j'obtiens l'erreur :

Parse error: syntax error, unexpected T_STRING in
/homez.713/neworker/www/test.php on line 1



Ce qui est normal. Il faut écrire

echo $toto;

C'est la base du PHP.

qui disparait si j'ecris :

<?
echo toto;
?>

sans le php donc. De même, si j'écris des commentaires dans mon code
avec un double slash :



C'est un commentaire. Le mot php est requis en PHP 5. Ce qui explique
pourquoi certains sites ne fonctionnent plus.

<?
// test echo
echo toto;
?>

Là, plus rien ne s'affiche à l'écran. Est-ce normal?




Pourquoi ne pas trouver un des tutoriaux dans Internet pour avoir une
bonne base ?


Denis
Avatar
denisb
Le 02/05/13 19:58, Raphael a écrit :
<?php
echo toto;
?>



echo "toto";

toto n'étant ni une variable ($toto) ni une constante
il faut encadrer la valeur par des quotes (simples ou doubles).


<?
echo toto;
?>



sans doute les short tags (<?) ne sont pas acceptés ;
rien n'est donc parsé.


<?
// test echo
echo toto;
?>



idem.


--
@@@@@
E -00 comme on est very beaux dis !
’ `) /
|_ ==”
Avatar
Raphael
Le 02/05/13 20:32, Denis Beauregard a écrit :
Le Thu, 02 May 2013 19:58:24 +0200, Raphael
écrivait dans fr.comp.lang.php:

Bonjour,

je suis actuellement chez OVH en hébergement où la version de php est
5.2.17 et j'ai un problème de syntaxe. Lorsque j'écris mon code de la
façon suivante :

<?php
echo toto;
?>

j'obtiens l'erreur :

Parse error: syntax error, unexpected T_STRING in
/homez.713/neworker/www/test.php on line 1



Ce qui est normal. Il faut écrire

echo $toto;

C'est la base du PHP.

qui disparait si j'ecris :

<?
echo toto;
?>

sans le php donc. De même, si j'écris des commentaires dans mon code
avec un double slash :



C'est un commentaire. Le mot php est requis en PHP 5. Ce qui explique
pourquoi certains sites ne fonctionnent plus.

<?
// test echo
echo toto;
?>

Là, plus rien ne s'affiche à l'écran. Est-ce normal?




Pourquoi ne pas trouver un des tutoriaux dans Internet pour avoir une
bonne base ?


Denis



Merci pour cette réponse, je sais que je manque un peu de rigueur mais
si je demande dans un forum c'est que je ne trouve pas ce que je cherche
dans un tutoriel. Et je répète, l'erreur vient quand j'écris php après
"<?", quelque soit le code. j'ai même fait des copier-coller de code que
j'ai trouvé sur internet et à chaque fois que dans le code il y a
"<?php", j'ai une erreur de syntaxe. Pouvez-vous m'aider à comprendre
pourquoi???
Avatar
Raphael
Le 02/05/13 20:34, denisb a écrit :
Le 02/05/13 19:58, Raphael a écrit :
<?php
echo toto;
?>



echo "toto";

toto n'étant ni une variable ($toto) ni une constante
il faut encadrer la valeur par des quotes (simples ou doubles).



Oui oui, évidemment, mais même quand j'écris cela j'ai une erreur :


Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in
/homez.713/neworker/www/test.php on line 1



<?
echo toto;
?>



sans doute les short tags (<?) ne sont pas acceptés ;
rien n'est donc parsé.


<?
// test echo
echo toto;
?>



idem.


Avatar
Denis Beauregard
Le Thu, 02 May 2013 20:57:33 +0200, Raphael
écrivait dans fr.comp.lang.php:

Le 02/05/13 20:34, denisb a écrit :
Le 02/05/13 19:58, Raphael a écrit :
<?php
echo toto;
?>



echo "toto";

toto n'étant ni une variable ($toto) ni une constante
il faut encadrer la valeur par des quotes (simples ou doubles).



Oui oui, évidemment, mais même quand j'écris cela j'ai une erreur :


Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in
/homez.713/neworker/www/test.php on line 1



Avec ceci ?

<?php echo "toto"; ?>

Pas d'erreur chez moi pourtant.


Denis
Avatar
Raphael
Le 02/05/13 22:55, Denis Beauregard a écrit :
<?php echo "toto"; ?>



Merci énormément, je viens de comprendre pourquoi. Le retour à la ligne
n'introduit pas d'espace entre "php" et la commande suivante qui est
"echo" dans dreamweaver.

Quand j'écris :

<?php
echo "toto";
?>

Le navigateur voit ceci :

<?phpecho "toto";?>

Merci encore.
Avatar
Pierre Maurette
Raphael :
Le 02/05/13 22:55, Denis Beauregard a écrit :
<?php echo "toto"; ?>



Merci énormément, je viens de comprendre pourquoi. Le retour à la ligne
n'introduit pas d'espace entre "php" et la commande suivante qui est "echo"
dans dreamweaver.

Quand j'écris :

<?php
echo "toto";
?>

Le navigateur voit ceci :

<?phpecho "toto";?>



Vous avez peut-être, sans doute, un problème avec vos caractères de fin
de ligne. Je n'ai pas essayé de le reproduire en PHP, mais un script
Python débutant par:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
se lance automatiquement dans un de mes Linux. Sauf si les fins de
lignes sont en CRLF (0x0D 0x0A), /à la Windows/. Il me semble que
j'avais constaté que dans ce cas, c'était l'exécutable python# qui
n'était pas trouvé, et pour cause. En réalité, la seconde ligne importe
peu, en particulier le fait que /ça parle d'encodage/ n'a rien à voir.

J'utilise peu Dreamweaver. Vous pouvez afficher les caractères de fin
de ligne. Vous pouvez paramétrer le type de caractère de fin de ligne
par défaut. Je suppose que sur des fichiers existants, il ne les
modifie pas. Vous pouvez paraméter vos transferts FTP en mode binaire
ou texte. Normalement, on devrait attendre qu'un transfert en mode
texte d'un fichier CRLF (Windows) l'écrive en LF (Unix) sur un serveur
Linux, mais je n'en suis pas certain.

Pour ce genre de recherche et éventuellement de traitement, à partir de
Windows, le mieux serait peut-être d'utiliser (par exemple) Notepad++
et son plugin intégré NppFTP. Là, vous pouvez éditer directement sur le
serveur, voir vos fins de lignes, les modifier en un clic, etc.

J'utilise parfois Notepad++ de cette façon, pour des rustines, ou pour
mettre l'existant en conformité, mais ma façon normale de travailler
c'est, en général dans un Eclipse, positionner par défaut mes fichiers
en Unix et UTF-8, et les transferts en binaire. Je peux d'ailleurs tout
faire à partir d'Eclipse, y compris le travail directement sur les
serveurs. Voyez si ce qui est possible avec Dreamweaver, à priori tout
sauf la modification après coup des fins de lignes, enfin, je ne sais
pas le faire.

--
Pierre Maurette
Avatar
Olivier Miakinen
Le 05/05/2013 20:55, Pierre Maurette répondait à Raphael :

Quand j'écris :

<?php
echo "toto";
?>

Le navigateur voit ceci :

<?phpecho "toto";?>



Vous avez peut-être, sans doute, un problème avec vos caractères de fin
de ligne.



Je suis persuadé que c'est bien ça le problème. Le User-Agent du
nouvelleur de Raphaël indique qu'il est sur Macintosh, or la fin de
ligne traditionnelle sur Mac était (est ?) CR seul au lieu de LF
seul (Unix) ou de CRLF (Windows et standards Internet).

J'utilise peu Dreamweaver. Vous pouvez afficher les caractères de fin
de ligne. Vous pouvez paramétrer le type de caractère de fin de ligne
par défaut.



Probablement, et ça a des chances de résoudre le problème.

Cordialement,
--
Olivier Miakinen
Avatar
Raphael
Le 05/05/13 22:56, Olivier Miakinen a écrit :
Le 05/05/2013 20:55, Pierre Maurette répondait à Raphael :

Quand j'écris :

<?php
echo "toto";
?>

Le navigateur voit ceci :

<?phpecho "toto";?>



Vous avez peut-être, sans doute, un problème avec vos caractères de fin
de ligne.



Je suis persuadé que c'est bien ça le problème. Le User-Agent du
nouvelleur de Raphaël indique qu'il est sur Macintosh, or la fin de
ligne traditionnelle sur Mac était (est ?) CR seul au lieu de LF
seul (Unix) ou de CRLF (Windows et standards Internet).

J'utilise peu Dreamweaver. Vous pouvez afficher les caractères de fin
de ligne. Vous pouvez paramétrer le type de caractère de fin de ligne
par défaut.



Probablement, et ça a des chances de résoudre le problème.

Cordialement,


Merci à toi Pierre, ainsi qu'à Olivier. Je pense que le problème vient
effectivement de là. Je suis bien sous Mac et j'ai remarqué que ce
problème est survenu depuis que je suis passé à la version CS6 de Adobe.
Je viens de faire une modification d'un site que j'avais réalisé il y a
un an et en faisant la synchro avec ma copie local depuis Dreamweaver,
plus aucun script ne fonctionnait. J'ai refais une copie avec Transmit
(c'est un client FTP) et tout est redevenu normal. Je n'ai pas le temps
de chercher dans les réglages pour le moment, mais dés que j'aurai pu
vérifier je posterai une réponse pour d'autres à qui le problème arriverait.
Avatar
Raphael
Le 07/05/13 02:29, Raphael a écrit :
Le 05/05/13 22:56, Olivier Miakinen a écrit :
Le 05/05/2013 20:55, Pierre Maurette répondait à Raphael :

Quand j'écris :

<?php
echo "toto";
?>

Le navigateur voit ceci :

<?phpecho "toto";?>



Vous avez peut-être, sans doute, un problème avec vos caractères de fin
de ligne.



Je suis persuadé que c'est bien ça le problème. Le User-Agent du
nouvelleur de Raphaël indique qu'il est sur Macintosh, or la fin de
ligne traditionnelle sur Mac était (est ?) CR seul au lieu de LF
seul (Unix) ou de CRLF (Windows et standards Internet).

J'utilise peu Dreamweaver. Vous pouvez afficher les caractères de fin
de ligne. Vous pouvez paramétrer le type de caractère de fin de ligne
par défaut.



Probablement, et ça a des chances de résoudre le problème.

Cordialement,


Merci à toi Pierre, ainsi qu'à Olivier. Je pense que le problème vient
effectivement de là. Je suis bien sous Mac et j'ai remarqué que ce
problème est survenu depuis que je suis passé à la version CS6 de Adobe.
Je viens de faire une modification d'un site que j'avais réalisé il y a
un an et en faisant la synchro avec ma copie local depuis Dreamweaver,
plus aucun script ne fonctionnait. J'ai refais une copie avec Transmit
(c'est un client FTP) et tout est redevenu normal. Je n'ai pas le temps
de chercher dans les réglages pour le moment, mais dés que j'aurai pu
vérifier je posterai une réponse pour d'autres à qui le problème
arriverait.




Je viens de vérifier et effectivement le problème venait d'un réglage de
préférence dans Dreamweaver qui faisait des saut de ligne "à la mode"
Macintosh. C'est une option que l'on peut modifier. Voici le lien vers
le site de adobe qui donne des explications :

http://help.adobe.com/fr_FR/dreamweaver/cs/using/WSc78c5058ca073340dcda9110b1f693f21-7be0a.html#WSc78c5058ca073340dcda9110b1f693f21-7bdda

Qui dit ceci :

<<Type de saut de ligne Permet d'indiquer le type de serveur distant
(Windows, Macintosh ou UNIX) qui hébergera votre site. Le choix du type
de caractères de saut de ligne approprié (CR, CR/LF, LF) garantit que
votre code source HTML s'affiche correctement lorsqu'il est affiché à
partir du serveur distant. Ce paramètre est également utile lorsque vous
travaillez avec un éditeur de texte externe qui ne reconnaît que
certains types de retours de chariot. Par exemple, utilisez CR/LF
(Windows), si votre éditeur de texte est le Bloc-notes de Windows, et CR
(Macintosh) s'il s'agit de SimpleText.>>