Page 1 sur 2

Du php dans une variable

Posté : 30 août 2005, 15:07
par Snoopy17
Salut à tous :)

J'ai un formulaire ou je rentre ce que je veux et ca va dans ma base de donnée.

Je rentre donc : <input type="hidden" name="DATAS" value="<?php echo $_GET['id']; ?>">

Sans rien touche cette informations va dans ma base de donnée.

Ensuite j'ai une page lire.php qui va lire ce que j'ai enregistré dans ma base de donnée donc elle va lire :

<input type="hidden" name="DATAS" value="<?php echo $_GET['id']; ?>">

Pour lire ceci j'ai fais :

<?php echo $result2['test']; ?>

Le probleme c'est que le code html est bien lu et interpreter mais pas le code php :(

Comment faire pour que lui aussi soit interpreter ?

Merci d'avance c'est important pour moi :)

Posté : 30 août 2005, 15:10
par ouckileou
la réponse est ici : fonction eval

Posté : 30 août 2005, 15:11
par Cyrano
ça génère quoi comme source html au juste ?

Posté : 30 août 2005, 15:13
par Snoopy17
ca genere :

<input type="hidden" name="DATAS" value="<?php eval('echo $_GET['id']'); ?>">

ouckileou >> je comprend pas comment je dois l'utiliser :(

Merci d'avance

Posté : 30 août 2005, 15:16
par ouckileou
petit exemple :
<?php
$code = 'echo "date du jour : ".date(\'d/mY\');	';
eval($code);
?>
affiche :
date du jour : 30/082005

Posté : 30 août 2005, 15:19
par Invité
petit exemple :
<?php
$code = 'echo "date du jour : ".date(\'d/mY\');	';
eval($code);
?>
Et dans mon exemple ca donnerai :( ?

car je ne comprend ou je dois placer ton code :(

Posté : 30 août 2005, 15:22
par ouckileou
tu as testé l'exemple ?

la variable $code contient du code PHP, et eval() l'interpréte
donc comme dans $code il y a un echo il fait le echo de date()

Je ne vois pas comment expliquer plus, tu récupères une variable avec le code en base de données, donc à partir de là c'est pareil dans ton script :

sauf que tu devra a priori mettre tout le code (même le HTML) dans un echo pour que ça marche

Posté : 30 août 2005, 15:25
par Snoopy17
J'ai essayer en mettant :

<?php echo eval($result2['test']); ?>

Ca ne marche pas il me dit erreur !

pourtant $result2['test'] contient :

<input type="hidden" name="DATAS" value="<?php echo $_GET['id']; ?>">

merci de votre aide

Posté : 30 août 2005, 15:29
par ouckileou
oui car comme je l'ai dit eval() interprète du PHP, et là tu as du HTML

fais un test simple :
<?php 
$code = 'echo "<input type=\"hidden\" name=\"DATAS\" value=\"".$_GET[\'id\']."\">";';
eval($code); 
?>

Posté : 30 août 2005, 15:31
par Snoopy17
Je comprend pas un coup tu as $code et un autre $result[test]

explique un peux :)

Posté : 30 août 2005, 15:33
par ouckileou
Je comprend pas un coup tu as $code et un autre $result[test] explique un peux :)
attend tu rigoles ou quoi

$code c'est une variable tu l'appelles comme tu veux, c'est juste pour stocker le code PHP pour l'exemple

c'est toi qui as $result[test] dans ton code à toi, alors adapte c'est tout... la difficulté n'est pas là

le code PHP est stocké dans une variable
eval() exécute le code de cette variable

Posté : 30 août 2005, 15:34
par ouckileou
j'ai édité l'exemple

test d'abord dans un exemple simple avant de récupérer le code PHP de ta base de données

Posté : 30 août 2005, 15:38
par ouckileou
appliquons l'exemple à ton code

on part du principe que la colonne de la base de données contient ça :

Code : Tout sélectionner

echo "<input type=\"hidden\" name=\"DATAS\" value=\"".$_GET[\'id\']."\">";
$requete = "SELECT test FROM table WHERE id = 1";
$exec = mysql_query($requete);

$result2 = mysql_fetch_array($exec);

eval($result2['test']);
si tout va bien, tu devrais avoir dans le code source HTML ton champ hidden affiché comme il faut ;)

Posté : 30 août 2005, 15:45
par Snoopy17
non j'ai une erreur :(

Code : Tout sélectionner

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home2/g/*********/www/fr/dl_kit.php(96) : eval()'d code on line 1 Parse error: parse error, unexpected $ in /home2/g/************/www/fr/dl_kit.php(96) : eval()'d code on line 1
Je sais pas d'ou ca vient :(

Posté : 30 août 2005, 15:46
par ouckileou
on peut voir le code qui va avec ?