| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

22-02-2009, 22:41
|
|
hilfebedürftig
Registrierter Benutzer
|
|
Registriert seit: Aug 2006
Beiträge: 30
|
|
E-Mail Text aus Datenbank lesen und vorm dem Senden verarbeiten ;)
Sooo, nächstes Problem
Ich möchte via PHPMailer E-Mails versenden, der TExt für de jeweile E-Mail wird aus einer Datenbank gelesen.
Natürlich möchte ich den jemanden persönlich ansprechen. Deswegen gibt es in den Text auch PHP-Code
Bsp.:
Hallo $user->vorname,
text text text $blumen->rot text text text
Innerhalb der PHP-Dtei arbeite ich mit eval() um den String auszuführen. Der Text liegt in einer Variablen vor, die ich an die Mailfunktion übergebe. Wie bekomm ich es hin, dass dieser Text vor dem Senden interpretiert wird?
Hat jemand eine bessere Idee? Die Lösung mit eval() ist mir auch etwas unsicher! Danke
|

22-02-2009, 22:44
|
|
lennart
PHP Junior
|
|
Registriert seit: May 2007
Ort: Hamburg
Beiträge: 565
|
|
Re: E-Mail Text aus Datenbank lesen und vorm dem Senden verarbeiten ;)
Zitat:
Original geschrieben von hilfebedürftig
Innerhalb der PHP-Dtei arbeite ich mit eval() um den String auszuführen.
|
Wie bitte? Welchen String "führst du aus"? Und vorallem warum?
|

22-02-2009, 23:23
|
|
hilfebedürftig
Registrierter Benutzer
|
|
Registriert seit: Aug 2006
Beiträge: 30
|
|
mit eval() führe ich einen Text aus einer DB aus:
Bsp:
Hallo $user->vorname,
text text text $blumen->rot text text text
Wir dann zu:
Hallo Heinz,
text text text Rose text text text
ber du weiss ja sicher, was eval() macht  Warum mach ich es nciht anders? wenn ich ein echo nehm, wird halt nur eine Zeichenkette ausgegeben und $user->vorname steht dann so im Text.
Dieser Text wird an mehreren Stellen verwendet, deswegen ist dieser in der Datenbank.
|

22-02-2009, 23:29
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Diese Templateengine setze ich oft für personalisierte Mails ein:
PHP-Code:
function template($string,$array)
{
$pattern = '/{([^}]*)}/ie';
$eval = 'isset($array["$1"])?$array["$1"]:"$0"';
return preg_replace($pattern,$eval,$string);
}
//----------
$string = "Ein {Tier} sprang über {Hindernis} </br>";
$var = array();
//----------
$var['Tier'] = 'Hund';
$var['Hindernis'] = 'den Graben';
echo template($string,$var) ;
//----------
$var['Tier'] = 'Pferd';
$var['Hindernis'] = 'das Gatter';
echo template($string,$var) ;
|

22-02-2009, 23:29
|
|
kuddeldaddeldu
Registrierter Benutzer
|
|
Registriert seit: Sep 2006
Beiträge: 437
|
|
Re: E-Mail Text aus Datenbank lesen und vorm dem Senden verarbeiten ;)
Hi,
Zitat:
Original geschrieben von hilfebedürftig
Hat jemand eine bessere Idee? Die Lösung mit eval() ist mir auch etwas unsicher! Danke
|
Dann speichere keinen PHP-Code in der Datenbank. Das ist nunmal Quark.
LG
|

23-02-2009, 09:27
|
|
rudygotya
Registrierter Benutzer
|
|
Registriert seit: Jan 2009
Beiträge: 5
|
|
Personalisiert würde ich mir prinzipiell eh nochmal überlegen.
Falls du newsletter oder dergleichen verschicken willst, solltest du dir noch bewußt machen, daß du eigentlich nur die email- Adresse speichern darfst. siehe hier
falls ich falsch liege, laß ich mich da gern verbessern.
|

23-02-2009, 09:35
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Zitat:
Original geschrieben von rudygotya
Falls du newsletter oder dergleichen verschicken willst, solltest du dir noch bewußt machen, daß du eigentlich nur die email- Adresse speichern darfst. siehe hier
|
Zumindest ist diese Information nun fast drei Jahre alt.
|

23-02-2009, 10:26
|
|
hilfebedürftig
Registrierter Benutzer
|
|
Registriert seit: Aug 2006
Beiträge: 30
|
|
Zitat:
Original geschrieben von rudygotya
Personalisiert würde ich mir prinzipiell eh nochmal überlegen.
Falls du newsletter oder dergleichen verschicken willst, solltest du dir noch bewußt machen, daß du eigentlich nur die email- Adresse speichern darfst. siehe hier
falls ich falsch liege, laß ich mich da gern verbessern.
|
nicht bei double opt-in ... aber es handelt sich nicht um eine Newsletter.
Wenn ich kein PHP-Code in einer DB speichern soll, wie dann? Ich finds auch quark :-) Das Templete schau ich mir mal an ...
|

23-02-2009, 12:44
|
|
hilfebedürftig
Registrierter Benutzer
|
|
Registriert seit: Aug 2006
Beiträge: 30
|
|
Zitat:
Original geschrieben von combie
Diese Templateengine setze ich oft für personalisierte Mails ein:
PHP-Code:
function template($string,$array)
{
$pattern = '/{([^}]*)}/ie';
$eval = 'isset($array["$1"])?$array["$1"]:"$0"';
return preg_replace($pattern,$eval,$string);
}
//----------
$string = "Ein {Tier} sprang über {Hindernis} </br>";
$var = array();
//----------
$var['Tier'] = 'Hund';
$var['Hindernis'] = 'den Graben';
echo template($string,$var) ;
//----------
$var['Tier'] = 'Pferd';
$var['Hindernis'] = 'das Gatter';
echo template($string,$var) ;
|
Perfekt! Bisschen angepasst und das Ergebnis ist genau das gewünschte!
Vielen Dank!
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|