E-Mail Text aus Datenbank lesen und vorm dem Senden verarbeiten ;)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

  • #2
    Re: E-Mail Text aus Datenbank lesen und vorm dem Senden verarbeiten

    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?

    Kommentar


    • #3
      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.

      Kommentar


      • #4
        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) ; 
        Wir werden alle sterben

        Kommentar


        • #5
          Re: E-Mail Text aus Datenbank lesen und vorm dem Senden verarbeiten

          Hi,

          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

          Kommentar


          • #6
            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.

            Kommentar


            • #7
              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.
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                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 ...

                Kommentar


                • #9
                  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!

                  Kommentar

                  Lädt...
                  X