Page 1 sur 1
100% bloqué: Comment appliquer un EVAL là-dessus?
Posté : 28 févr. 2006, 12:23
par Lorange
J'ai la variable suivante:
Je dois y appliquer la fonction eval. J'ai essayé (parmi tant d'autres choses):
Mais cela ne fonctionne pas.
Qui pourrait me débloquer? Je suis desssus depuis plus d'une heure!
Re: 100% bloqué: Comment appliquer un EVAL là-dessus?
Posté : 28 févr. 2006, 12:29
par heddicmi
Posté : 28 févr. 2006, 12:58
par Invité
Aucun des deux ne fonctionne.
Le deuxième affiche une page blanche.
Avec le premier, la page s'affiche, mais rien ne s'affiche à la place de l'eval.
Posté : 28 févr. 2006, 13:00
par Invité
Notez que si je fais:
Code : Tout sélectionner
<?php eval('echo "'.htmlspecialchars($result["cat_name_trans"]).'";'); ?>
Cela fonctionne. Mais je dois associer cela à ma variable $nom
Posté : 28 févr. 2006, 13:04
par heddicmi
Dans ce cas :
eval("\$nom=htmlspecialchars(\$result[\"cat_name_trans\"]);");
Je pense que ça devrait être bon...
Posté : 28 févr. 2006, 13:16
par Invité
Il affiche maintenant :
$w[691] => $w[920]
Autrement dit, il n'a pas appliqué l'eval.
Je vais devenir fou!
Posté : 28 févr. 2006, 13:21
par heddicmi
Si tu exécutes la ligne :
$nom=htmlspecialchars($result["cat_name_trans"]);
Ca te donne ton résultat ?
(Mais au fait, pourquoi utiliser eval() ?)

Posté : 28 févr. 2006, 13:31
par Invité
En fait, j'ai des portions de codes php contenues dans des bases de données. C'est assez compliqué à vrai dire. Il faut donc que ces portions soient interprétées comme étant du code php.
Je suis parvenu à mes fins sur d'autres pages en faisant:
Code : Tout sélectionner
<?php eval('echo "'.htmlspecialchars($result["cat_name_trans"]).'";'); ?>
Et alors, au lieu de m'afficher le code contenu dans la base, par exemple:
Ca m'affiche
Europe France
--------------------------------
Donc j'ai ceci qui fonctionne:
Code : Tout sélectionner
<?php eval('echo "'.htmlspecialchars($result["cat_name_trans"]).'";'); ?>
Je veux simplement le mettre dans ma variable nom. Mais cela ne fonctionne plus. Ca doit être un problème de syntaxe. Mais je planche.
Posté : 28 févr. 2006, 13:31
par Invité
Si tu exécutes la ligne :
$nom=htmlspecialchars($result["cat_name_trans"]);
Ca te donne ton résultat ?
(Mais au fait, pourquoi utiliser eval() ?)

OUi ca m'affiche le code php tel quel contenu dans la base
Posté : 28 févr. 2006, 13:39
par Invité
Si je fais:
Code : Tout sélectionner
eval('echo "'.$nom=htmlspecialchars($result["cat_name_trans"]).'";');
Ca fonctionne aussi mais cela affiche directement le resultat sur la page alors que je souhaite simplement le mettre dans la variable.
Posté : 28 févr. 2006, 13:46
par heddicmi
Si tu exécutes la ligne :
$nom=htmlspecialchars($result["cat_name_trans"]);
Ca te donne ton résultat ?
(Mais au fait, pourquoi utiliser eval() ?)

OUi ca m'affiche le code php tel quel contenu dans la base
Et bin c'est bon alors ? je comprends de moins en moins ce qui ne vas pas

Posté : 28 févr. 2006, 13:52
par Invité
Si je fais
J'obtiens sur ma page: "$[609] $[610]"
Or, je devrais obtenir "Europe France"
Il faut que $[609] $[610] soit interpreté comme du code PHP, d'où le recours à la fonction eval.
----
Si je fais
Code : Tout sélectionner
eval('echo "'.htmlspecialchars($result["cat_name_trans"]).'";');
cela fonctionne. J'obtiens sur ma page : "Europe France" (non plus "$[609] $[610]")
Mais moi, je ne veux plus faire d'echo. Je veux stocker cela dans une variable $nom
Et c'est là que je m'embrouille probablement dans les guillements. J'aimerais une variable $nom qui stocke la valeur du echo fait plus haut.
Posté : 28 févr. 2006, 14:04
par Lorange
J'ai trouvé!!
Code : Tout sélectionner
eval('$nom='.htmlspecialchars($result["cat_name_trans"]).';');
Merci pour ton aide... tu m'as mis sur la voie!

Posté : 28 févr. 2006, 14:05
par heddicmi
eval('\$nom='.htmlspecialchars($result["cat_name_trans"]).';');
J'y crois à mort ce coup ci !
Posté : 28 févr. 2006, 14:16
par Invité
Oui avec le slash renversé ou sans ça fonctionne.
Merci encore pour tes tuyaux!