Page 1 sur 1

Utilisation de eval()

Posté : 11 mai 2007, 10:33
par code3
Bonjour tout le monde,

j'ai un formulaire stocké dans ma BDD et je veux l'afficher par un simple echo, en faisant une petite recherche j'ai trouvé que la fonction eval() fait ceci, mais malheureusement j'ai pas pu l'appliquer. :(
Mon formulaire stocké dans la BDD est le suivant :
<form name="frm" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" >
<input type="text" name="txt" value="<?php echo $_POST['txt']; ?>"><br>
<input type="submit" name="submit" value="Submit" >
</form>
Merci poour votre aide.

Posté : 11 mai 2007, 11:31
par code3
Est ce que quelqu'un peut m'aider. Je bolque là!! :(

Posté : 11 mai 2007, 11:54
par guilt92
Qu'as tu essayé pour l'instant ? As tu des messages d'erreur ? As tu lu la doc sur eval() ? Pour avoir une solution mieux vaut poser un probleme... " j'ai pas pu l'appliquer" ne m'aide pas a comprendre face a quelle erreur tu bloques...

Posté : 11 mai 2007, 12:14
par code3
Merci bien ,

Oui bien sure j'ai lu la documentation de eval() mais elle m'a pas clarifié les choses on a pas le même cas de figure.

En faite j'ai essayé ceci :

$str = "<form name=\"frm\" method=\"POST\" action=\"<?php echo $_SERVER['PHP_SELF']; ?>\" >
<input type=\"text\" name=\"txt\" value=\"<?php echo $_POST['txt']; ?>\"><br>
<input type=\"submit\" name=\"submit\" value=\"Submit\" >
</form>" ;

eval( "\$str1 = \"$str\" ;" );
echo $str1 ; 

et il m'affiche :

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in



Merci

Posté : 11 mai 2007, 12:31
par orgerix
eval( "\$str1 = \"$str\" ;" );
Ca me parrait pas très catholique. L'anti slash après le premier guillement fait quoi ?

Ensuite, si tu essayais
$str1 =eval($str);

Posté : 11 mai 2007, 12:39
par code3
Oui j'ai déjà essayé ça mais ça donne le même message d'erreur :(
Merci.

Posté : 11 mai 2007, 15:01
par sylvaing26
Il ne te manquerai pas des fonction echo() ou une balise PHP ?
comme ceci :
$str = "<form name=\"frm\" method=\"POST\" action=\"<?php echo $_SERVER['PHP_SELF']; ?>\" > 
<input type=\"text\" name=\"txt\" value=\"<?php echo $_POST['txt']; ?>\"><br> 
<input type=\"submit\" name=\"submit\" value=\"Submit\" > 
</form>" ; 
<?php
eval( "\$str1 = \"$str\" ;" ); 
echo $str1 ; 
?>

Posté : 11 mai 2007, 15:49
par code3
Merci pour la réponse sylvaing26 mais ça ne fonctionne pas, car en faite la variable $str est une chaine stocké dans ma BDD et comme c'est du PHP elle doit être donc entre les balises "<?php" et "?>".

Je crois que je me suis mal exprimé ou peut être je dois poser la question d'une autre mannière.
Comment fait-on pour afficher le formulaire suivant initialement stocké dans une BDD, car forcément il y a un moyen de le faire :

Code : Tout sélectionner

<form name="frm" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" > <input type="text" name="txt" value="<?php echo $_POST['txt']; ?>"><br> <input type="submit" name="submit" value="Submit" > </form>
Merci pour votre aide.

Posté : 11 mai 2007, 17:20
par mere-teresa
$str = "<form name=\"frm\" method=\"POST\" action=\"<?php echo $_SERVER['PHP_SELF']; ?>\" >
<input type=\"text\" name=\"txt\" value=\"<?php echo $_POST['txt']; ?>\"><br>
<input type=\"submit\" name=\"submit\" value=\"Submit\" >
</form>" ;

eval( "\$str1 = \"$str\" ;echo $str1 ;" );
//il faut mettre le echo aussi dans le eval :)
Ou pourquoi ne pas faire :
$str = "<form name=\"frm\" method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\" >
<input type=\"text\" name=\"txt\" value=\"".$_POST['txt']."\"><br>
<input type=\"submit\" name=\"submit\" value=\"Submit\" >
</form>" ;

echo $str;

Posté : 11 mai 2007, 18:07
par Invité
Merci mere-teresa pour votre réponse, mais comme même une simple concaténation ne va nous échapper si c'était le cas.
En faite ce formulaire est stocké dans une base de donnée c'est à dire je vais dans un premier temps exécuter une requête
"Select field from Forms where idForms=\"$id\" ; " dans une fonction getForm($id) qui retourne une simple chaine de caractères contenant le formulaire en question, soit :

Code : Tout sélectionner

<form name="frm" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" > <input type="text" name="txt" value="<?php echo $_POST['txt']; ?>"><br> <input type="submit" name="submit" value="Submit" > </form>
.

Et c'est cette chaîne de caractères que je veux afficher et c'est là que le problème persiste Parse error...


Merci pour votre aide :)

Posté : 11 mai 2007, 18:11
par code3
Oops!!
Désolé, c'était moi j'ai oublié de m'authentifier. Merci :)

Posté : 12 mai 2007, 10:02
par code3
Bonjour tout le monde,

Alors je vous cache pas c'est la galaire depuis hier 8-) , j'ai vu une multitude de message d'erreur pour un simple affichage d'un formulaire contenant deux scripts PHP (oui simple mais c'est la cata de mon coté). En faite je cherche encore une solution pour mon problème et s'il y a pas un tuto pour mieux comprendre cette fonction eval() autre que les quatre lignes du manuelle PHP et autre que "google est ton ami" afin que je puisse avancer dans mon projet.

Merci pour votre aide

Posté : 14 mai 2007, 08:50
par lem
Mais euh.. Il n'y a plus d'eval() dans ton code là..

Posté : 14 mai 2007, 15:06
par mere-teresa
Peux tu remettre la ou les erreurs que tu as eues ici ?
Peux tu afficher ton code source HTML et le copier / coller ?