# PHP syntax error, unexpected T_VARIABLE, je ne vois pas ou



## alpking (7 Novembre 2006)

bonsoir,

j'ai dans le code suivant une erreur (Parse error: syntax error, unexpected T_VARIABLE) à l'avant dernière ligne


```
//Affiche le détail de l'image
					echo '<u>Détails de l\'image finale sur le serveur</u><br>';
echo '<b>Fichier :</b> ' , $nom_file, '<br />';
echo '<b>Taille :</b> ' , $size_file, ' Octets<br />';
echo '<b>Qualité :</b> ' , $quality, ' %<br />';
echo '<b>Largeur :</b> ' , $largeurDestination, ' px<br />';
echo '<b>Hauteur :</b> ' , $hauteurDestination, ' px<br />';
echo '<b>Adresse du fichier à copier dans la news : </b>',htmlspecialchars('<img src="http://www.gaptrading.ch/html/imagenews/'$_FILES['fichier']['name']'">');
echo '<hr />';
```

est ce que quelqu'un voit ou est l'erreur ?

Merci d'avance


----------



## molgow (7 Novembre 2006)

La concat&#233;nation de cha&#238;ne de caract&#232;res se fait avec le point (.) pas la virgule &#224; ce que je sache.


----------



## Zeusviper (7 Novembre 2006)

molgow a dit:


> La concat&#233;nation de cha&#238;ne de caract&#232;res se fait avec le point (.) pas la virgule &#224; ce que je sache.



la concat&#233;nation peut se faire via le point, via la fonction sprintf, ou via la virgule (et probablement encore d'autres facons!)
le plus commun est le point du fait qu'on ne va pas le m&#233;langer avec une succession de param&#232;tres (cas de la virgule) ou des op&#233;rations math&#233;matiques (cas du plus). mais les autres options peuvent avoir de meilleures performances selon les cas.

en l'occurence ici le pb vient surtt de l&#224; : 
.../imagenews*/'*$_FILES...

et ici on est justement ds le cas o&#249; la concat&#233;nation par virgule est plus que foireuse!
d'o&#249; : 
	
	



```
.../imagenews/' . $_FILES['fichier']['name'] . '" />');
```


EDIT : d'ailleurs je me demande si la concat&#233;nation par virgule ne serait pas permise que pour la fonction echo
EDIT2 : http://www.vulgarisation-informatique.com/optimiser-php.php pour les tests de performance
EDIT3 : vu que ca me perturbait : pour &#234;tre exact :dans  echo 'aa' , 'zz'; le passage des &#233;l&#233;ments est fait par param&#232;tre, echo &#233;tant une structure du langage et non une fonction.


----------



## p4bl0 (7 Novembre 2006)

@Zeusviper : je n'ai jamais vu la virgule avec autre chose que echo mais en fait la virgule ne fait aucune concat&#233;nation, c'est justement &#231;a l'int&#233;r&#234;t de l'utiliser.


```
echo 'Hello '.'World!';
```
Ici PHP va d'abord concat&#233;ner les deux chaines enssemble puis afficher le r&#233;sultat.


```
echo 'Hello ','World!';
```
Alors que l&#224; PHP va d'abors faire *echo 'Hello ';* puis *echo 'World!';* ce qui est parait-il plus rapide...


----------



## alpking (8 Novembre 2006)

merci bp pour vos réponse, le problème de cette ligne est résolu...

mais je ne sais pas pourquoi, maintenant j'ai le problème suivant à la dernière ligne de code (qui est la suite en faite) :


```
//Affiche le détail de l'image
					echo '<u>Détails de l\'image finale sur le serveur</u><br>';
					echo '<b>Fichier :</b> ' , $nom_file, '<br />';
					echo '<b>Taille :</b> ' , $size_file, ' Octets<br />';
					echo '<b>Qualité :</b> ' , $quality, ' %<br />';
					echo '<b>Largeur :</b> ' , $largeurDestination, ' px<br />';
					echo '<b>Hauteur :</b> ' , $hauteurDestination, ' px<br />';
					echo '<b>Adresse du fichier à copier dans la news : </b>' , htmlspecialchars('<img src="http://www.gaptrading.ch/html/imagenews/' . $_FILES['fichier']['name'] . '">');
					echo '<hr />';
					 
					$lien_image = $site.$nom_rep."/".$nom_file;
					echo "L'image ci-dessous a été redimentionnée et chargée sur le serveur.<br><br>";
                    //echo "Lien de l'image : ".$lien_image."<br /><br />";
                    echo "<img border='0' src='".$lien_image."'><br />";
                    
                    if($test_local == 0)
                      {
                     
                      }
                       
                } else {
                    // Sinon on affiche une erreur système
                    echo '<font color=red><b><u>ECHEC DE L\'ENVOI</u><br><br>Problème lors de l\'upload !</b><br /><br /><b>Erreur num : '$_FILES['fichier']['error'], '</b><br /><br /></font>';
```

Le problème est celu la : Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';'

j'ai relu mon code avec attention, mais je n'ai pas trouvé l'erreur...

quelqu'un la voit ?

merci d'avance


----------



## alpking (8 Novembre 2006)

en fait j'ai trouv&#233;, il s'agit de la m&#234;me erreur concat&#233;nation...

merci a ceux qui m'ont aid&#233;...


----------



## p4bl0 (8 Novembre 2006)

Petit conseil :
M&#234;me si tes pages sont d&#233;clar&#233; comme html et non xhtml, soit coh&#233;rent, n'utilise pas <br /> une fois sur deux et <br> le reste du temps ;-)


----------



## tatouille (8 Novembre 2006)

truk2oof a dit:


> @Zeusviper : je n'ai jamais vu la virgule avec autre chose que echo mais en fait la virgule ne fait aucune concat&#233;nation, c'est justement &#231;a l'int&#233;r&#234;t de l'utiliser.
> 
> 
> ```
> ...



20/20 clair net et pr&#233;cis

la virgule n'est pas une concat&#233;nation c'est un traitement de params



ALPKING

utilise des variables au lieu de faire echo  echo echo ...
et ptain utilise les facilit&#233;s du language

http://fr2.php.net/manual/en/function.sprintf.php

tu &#233;conomiserais 80 % de ton blabla
je rappel que php empreinte sa synthaxe/philosophique au C


----------

