eval() avec des "?

eval() avec des "? - PHP - Programmation

Marsh Posté le 02-01-2004 à 16:24:34    

Bonjour,
 
voici une ligne
 
$tab[$iP][$jP]="<td $classPromo bgcolor=$row_color><span title= \" $poi_nouveau \" >$prix&euro;</span></td>";
 
 
qui est passé à Eval.
j'obtiens un : Parse error: parse error, unexpected T_VARIABLE in c:\program files\apache group\apache\htdocs\listgen\stocklist.php(346) : eval()'d code on line 1
 
si je retire ce qui est en gras, ça passe MAIS, mon $poi_nouveau contient des espaces, donc mon title ne s'affiche pas correctement.
 
Comment passé des "" à Eval?
 
Merci.


Message édité par AGA le 05-01-2004 à 08:36:29
Reply

Marsh Posté le 02-01-2004 à 16:24:34   

Reply

Marsh Posté le 02-01-2004 à 16:25:54    

Comme ça : \"

Reply

Marsh Posté le 02-01-2004 à 16:26:42    

oui , oui j'ai mis \"
 
erreur de recopie.

Reply

Marsh Posté le 02-01-2004 à 16:27:16    

Parse error: parse error, unexpected T_STRING in c:\program files\apache group\apache\htdocs\listgen\stocklist.php(346) : eval()'d code on line 1

Reply

Marsh Posté le 02-01-2004 à 16:29:25    

Postes ta ligne complète . . .

Reply

Marsh Posté le 02-01-2004 à 16:33:02    

Promto :D
 
$poi_nouveau="TOTO tutu lulu";
 
$tab[$iP][$jP]="<td $classPromo bgcolor=$row_color><span title=\" $poi_nouveau\">$prix&euro;</span></td>";
 
$res=$tab[$i][$j];      
eval(" \$res= \"$res\"; " );
 
echo $res;

Reply

Marsh Posté le 02-01-2004 à 16:37:55    

Y faut aussi mettre de \ devant les $ pour les variables à évaluer au deuxième passage...

Reply

Marsh Posté le 02-01-2004 à 16:40:27    

Et puis y'a un mélange de $i et de $iP, idem pour $j et $jP...

Reply

Marsh Posté le 02-01-2004 à 16:52:00    

eval(" \$res= \"$res\"; " );  
Donne :
 
$res= "XXX";
ou XXX vaut :
<td classe="truc" bgcolor="couleur"><span title="titre">125&euro;</span></td>
 
Donc
$res= "<td classe="truc" bgcolor="couleur"><span title="titre">125&euro;</span></td>";
 
Y'a donc un GRAVE problème de " !


Message édité par Mara's dad le 02-01-2004 à 16:53:46
Reply

Marsh Posté le 02-01-2004 à 18:22:13    

Comme ça je pense que ce sera mieux : eval("<span title=\"".$poi_nouveau."\">" );


Message édité par Lex le 02-01-2004 à 18:22:28
Reply

Marsh Posté le 02-01-2004 à 18:22:13   

Reply

Marsh Posté le 03-01-2004 à 18:35:13    

Et tu raconte une grosse connerie :D
L'expression dans eval() doit être une expression PHP, genre

Code :
  1. $a=1;


mais,  

Code :
  1. <span title=".$poi_nouveau.">


est loin d'en être une !
Je trouve que ça ressemble plutôt à du HTML :o


Message édité par Mara's dad le 03-01-2004 à 18:36:48

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 03-01-2004 à 18:37:25    

mara's dad a écrit :

Et tu raconte une grosse connerie :D
L'expression dans eval() doit être une expression PHP, genre

Code :
  1. $a=1;


mais,  

Code :
  1. <span title="truc">


est loin d'en être une !
Je trouve que ça ressemble plutôt à du HTML :o


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 03-01-2004 à 21:32:27    

certes, il faut remplacer eval par echo et ça marche mieux :D

Reply

Marsh Posté le 05-01-2004 à 08:40:40    

Ce n'est pas le pb d'evaluation des variables!
ça c'est nickel.
 
Le pb c'est que je veux obtenir de Eval une ligne avec des ", et il n'en veux pas si je passe ça :
 
$var="<td $classPromo bgcolor=$row_color><span title=$poi_nouveau>10Francs</span></td>";  
 
ça fonctionne mais j'obtiens une ligne de type
<td class=promo bgcolor=#FFDDFF><span title=Un titre avec des espaces>10Francs</span></td>
 
,  
comme il n'y a pas de " " pour la balise title, bha mon title il affiche que : Un.
 
je me suis dit facile il faut juste mettre des "" dans $var genre comme ça :  
 
$tab[$iP][$jP]="<td $classPromo bgcolor=$row_color><span title= \" $poi_nouveau \" >$prix&euro;</span></td>";  
 
bha ça marche pas j'ai un message d'erreur :/
 
 
 
 
 
 
 
 

Reply

Marsh Posté le 05-01-2004 à 08:44:04    

donc en fait comment escapé les ", apparament ce n'est pas avec les /
 
peut être autre chose?

Reply

Marsh Posté le 05-01-2004 à 08:58:45    

Bon j'ai essayé de réfléchir :D
 
Je me suis souvenu des ' et ", l'un pas interpreté l'autre oui.
J'ai tenté ça :
$var="<td><span title=".'\"'."$poi_nouveau".'\"'.">10Francs</span></td>";
 
ça marche :)

Reply

Marsh Posté le 05-01-2004 à 21:38:17    

Autre truc peut-être :
 
le problème je pense c'est que la ligne  

Code :
  1. $tab[$iP][$jP]="<td $classPromo bgcolor=$row_color><span title= \" $poi_nouveau \">$prix_euro;</span></td>";


va mettre dans $tab[$iP][$jP] cette valeur :

Code :
  1. <td classPromo bgcolor=row_color><span title= " poi_nouveau ">prix_euro;</span></td>

 
(j'ai remplacé les variables $classPromo, $row_color, $poi_nouveau et $prix_euro par leur propre nom à la place de leur valeur que je ne connais pas)
 
Ensuite la ligne  

Code :
  1. eval(" \$res= \"$res\"; " );


va en fait évaluer :

Code :
  1. $res = "<td classPromo bgcolor=row_color><span title= " poi_nouveau ">prix_euro;</span></td>";


Petit problème : les guillemets autour de poi_nouveau ne sont pas échappés ici donc il a va faire une erreur.
 
Il faudrait donc plutôt faire :

Code :
  1. $tab[$iP][$jP]="<td $classPromo bgcolor=$row_color><span title= \\\" $poi_nouveau \\\">$prix_euro;</span></td>";


où dans $tab[$iP][$jP], \\\" va être remplacé par \" et donc PHP évaluera bien

Code :
  1. $res = "<td classPromo bgcolor=row_color><span title= \" poi_nouveau \">prix_euro;</span></td>";


 
Sinon c'est sûr qu'avec des quotes, tu auras moins de problèmes =)
 
Et heuu  :??:  pourquoi tu fais un eval à cet endroit ci ? (j'aurais encore pu voir l'interêt si tu avais échappé les $)
 
 

Reply

Marsh Posté le 06-01-2004 à 08:05:58    

Bha en fait le tab c'est un tableau à deux dimensions?
 
C'est pour faire de l'affichage.
 
Les lignes vides, ont été initialisé anterieurement dans le tab, à ce moment, je ne connais pas encore la couleur de la ligne...
 
En faisant un effort je pourrais faire qqchose de plus joli.
 
Mais sur le moment j'avais pas le temps de revoir mon concept.
 
En gros je dessinais mon tableau, et ho rage ho desespoir! certaines casses n'etaient pas coloriées :/
 
:o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed