Ciao,
sto cercando di dare maggiore flessibilità al cliente nel invio delle email dal sito. (Semplice Newsletter).
Usando istruzione str_replace() posso sostituire ad esempio il campo {nome} con il Nome del utente a cui in questo momento si sta inviando il messaggio.
Codice PHP:
$message = str_replace('{nome}', $db->f("first_name"), $message);
dove db->f è una richiesta al database per "pescare" campo first_name nella db Users.
Qui tutto funziona bene, il problema sorge quando ho voluto dare la possibilità di inserire i prodotti dalla tabella Products con il seguente sistema-template: {prodotto_#} dove # qualsiasi numero, ad esempio {prodotto_34}
Codice PHP:
ereg("{prodotto_([0-9]+)}", $message, $matches);
if ($matches[1]) { $productid = $matches[1]; }
Dopo di che pesco tutto quello che riguarda il prodotto (SELECT * FROM Products WHERE product_id='$productid')
Poi ho questo:
Codice PHP:
$full_prodotto = "" . $dbp->f("product_name") . " " . $dbp->f("product_desc") . " " . $dbp->f("product_price") . "\n\n";
$message = eregi_replace("{prodotto_([0-9]+)}", $full_prodotto, $message);
Se {prodotto_#} è unico nel messaggio tutto funziona bene, il problema sorge se l'utente inserisce più prodotti, {prodotto_12}, {prodotto_56}, in questo caso dal database viene pescato sempre lo stesso prodotto 2 volte.
Cosa mi conviene fare per controllare la variabile $message per la presenza di {prodotto_#} multipli?
Grazie in anticipo, spero che qualcuno mi illumini..