Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: Tarteauxpommes le le 29-06-2009 a 17:01:20

Titre: [RESOLU]Variables dans une variable chargée depuis mysql
Posté par: Tarteauxpommes le le 29-06-2009 a 17:01:20

Bonjour à tous,

Je n'arrive pas à utiliser les définitions des variables dans un texte sauvegardé dans mysql.

Par exemple disons que j'ai ce template de message sauvegardé dans mysql: "Hello world! Dit $user à $friend." Appelons ça $message.

J'ai un formulaire qui 'post' mes variables $user="Alexandre"; et $friend="Arthur"; vers mon script php.
Le script créé ma requête pour récupérer le template de $message dans mysql --> ça marche.

Le script doit compléter le tout en se servant des valeurs de $user et $friend pour obtenir : "Hello world! Dit Alexandre à Arthur."
--> ça ne marche pas.

Evidemment tout fonctionne bien si je définis $message directement dans le script sans passer par mysql.

J'ai simplifié mais j'essaye d'utiliser un template de messages qu'on peut modifier plus tard en ajoutant des noms de variables placés juducieusement. Ensuite se servir de ce template pour envoyer un email.

Si quelqu'un peut m'aider, je vous serai très reconnaissant.

Titre: Re:Variables dans une variable chargée depuis mysql
Posté par: Krash le le 30-06-2009 a 19:25:54

Bonsoir

Dans ton texte qui se trouve dans ta base de données, au lieu de mettre $user, $friend, crée des sortes de TAG {USER}, {FRIEND}

ensuite tu fais ceci

$message = str_replace('{USER}', $user, $message);

$message = str_replace('{FRIEND}', $friend, $message);

Après tu peux mettre tout ca dans un tableau, faire des boucles etc pour simplifier les choses. Il y a aussi d'autres solutions

Titre: Re:Variables dans une variable chargée depuis mysql
Posté par: Tarteauxpommes le le 01-07-2009 a 20:21:48

Merci Krash,

J'y avais pensé mais ça n'a tout de même rien donné.
En fait le plus simple c'était de passer la variable $message sous "eval"
Ce qui rend le code php actif dans la variable.


Code:
eval("\$message = \"$message\";");


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.