Phil: Variable ausführen

$mailtext = 'Hallo '.$benutzer.'.';
$benutzer = 'Dr. Seltsam';
mail ('bei@spiel.de', 'Variablentest', $mailtext, 'From: test@mail.de');

Mail soll sein: Hallo Dr. Seltsam.

Gibt es da einen Weg?
In einem längeren Mailscript möchte ich
die Textbausteine der Übersicht halber oben
als Variablen abspeichern. Im Mailext enthaltene
Variablen werden jedoch erst weiter unten aus
der DB abgefragt.

Gruss

Phil

  1. Hallo Phil,

    eine Variable kann man nicht "ausführen". [1]

    In einem längeren Mailscript möchte ich
    die Textbausteine der Übersicht halber oben
    als Variablen abspeichern. Im Mailext enthaltene
    Variablen werden jedoch erst weiter unten aus
    der DB abgefragt.

    Du solltest Dich mit dem EVA-Prinzip der Datenverarbeitung vertraut machen, dann verschwindet Dein Problem automatisch.

    Freundliche Grüße

    Vinzenz

    [1] außer vielleicht mit evil eval() ...

    1. Vielen Dank.

      Das EVA-Prinzip ist schon klar, nur möchte
      ich eben verschiedene mögliche Mailtexte
      übersichtlich ablegen.
      Könnte man also nur mit z.B include() auslagern?
      Gibt es nichts ähnliches innerhalb einer Datei?

      Hallo Phil,

      eine Variable kann man nicht "ausführen". [1]

      In einem längeren Mailscript möchte ich
      die Textbausteine der Übersicht halber oben
      als Variablen abspeichern. Im Mailext enthaltene
      Variablen werden jedoch erst weiter unten aus
      der DB abgefragt.

      Du solltest Dich mit dem EVA-Prinzip der Datenverarbeitung vertraut machen, dann verschwindet Dein Problem automatisch.

      Freundliche Grüße

      Vinzenz

      [1] außer vielleicht mit evil eval() ...

      1. Hallo,

        also ich amche das meist folgendermaßen:

        $sText = "Hallo %s,\n\nheute ist der %s.\n\nViele Grüße,%s";

        ...

        $sMailtext = sprintf($sText,$var1,$var2,$var3);

        oder noch besser

        $sMailtext = vsprintf($sText,array($var1,$var2,$var3));

        Gruß,
        Manu

  2. Mahlzeit,

    ich spiele mal PHP-Interpreter, OK?

    $mailtext = 'Hallo '.$benutzer.'.';

    Aha. Ich soll also zwei Strings mit dem Inhalt der Variablen $benutzer verknüpfen und in die Variable $mailtext schreiben. Also dann nehme ich mal 'Hallo ' und hänge da den Inhalt der Variablen $benutzer dran. Was steht denn da drin? Aha: ''. Also Insgesamt 'Hallo '. Dann soll ich da noch '.' dranhängen. Dann hätten wir also 'Hallo .'. Fertig.

    $benutzer = 'Dr. Seltsam';

    Aha. Ich soll also der Variablen $benutzer den String 'Dr. Seltsam' zuordnen. Fertig.

    mail ('bei@spiel.de', 'Variablentest', $mailtext, 'From: test@mail.de');

    Aha. Ich soll also eine Funktion aufrufen und dieser drei Strings sowie den Inhalt der Variablen $mailtext übergeben. Fertig.

    Mail soll sein: Hallo Dr. Seltsam.

    Wie kommst Du darauf, dass PHP weiß, was in der Variablen $benutzer drin sein SOLL, bevor Du der Variablen den Inhalt zuweist?

    Gibt es da einen Weg?

    Ja. Den Inhalt zuweisen, BEVOR man die Variable ausliest.

    In einem längeren Mailscript möchte ich
    die Textbausteine der Übersicht halber oben
    als Variablen abspeichern. Im Mailext enthaltene
    Variablen werden jedoch erst weiter unten aus
    der DB abgefragt.

    Dann denk Dir entsprechende Platzhalter aus, die Du "weiter unten" durch die richtigen aus der Datenbank ausgelesehen Werte ersetzt.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Danke, die Logik ist mir schon klar, ich suche ja nicht den Fehler.
      Wie arbeitet man denn mit Platzhaltern?

      Danke

      Phil

      Mahlzeit,

      ich spiele mal PHP-Interpreter, OK?

      $mailtext = 'Hallo '.$benutzer.'.';

      Aha. Ich soll also zwei Strings mit dem Inhalt der Variablen $benutzer verknüpfen und in die Variable $mailtext schreiben. Also dann nehme ich mal 'Hallo ' und hänge da den Inhalt der Variablen $benutzer dran. Was steht denn da drin? Aha: ''. Also Insgesamt 'Hallo '. Dann soll ich da noch '.' dranhängen. Dann hätten wir also 'Hallo .'. Fertig.

      $benutzer = 'Dr. Seltsam';

      Aha. Ich soll also der Variablen $benutzer den String 'Dr. Seltsam' zuordnen. Fertig.

      mail ('bei@spiel.de', 'Variablentest', $mailtext, 'From: test@mail.de');

      Aha. Ich soll also eine Funktion aufrufen und dieser drei Strings sowie den Inhalt der Variablen $mailtext übergeben. Fertig.

      Mail soll sein: Hallo Dr. Seltsam.

      Wie kommst Du darauf, dass PHP weiß, was in der Variablen $benutzer drin sein SOLL, bevor Du der Variablen den Inhalt zuweist?

      Gibt es da einen Weg?

      Ja. Den Inhalt zuweisen, BEVOR man die Variable ausliest.

      In einem längeren Mailscript möchte ich
      die Textbausteine der Übersicht halber oben
      als Variablen abspeichern. Im Mailext enthaltene
      Variablen werden jedoch erst weiter unten aus
      der DB abgefragt.

      Dann denk Dir entsprechende Platzhalter aus, die Du "weiter unten" durch die richtigen aus der Datenbank ausgelesehen Werte ersetzt.

      MfG,
      EKKi

      1. Mahlzeit,

        Danke, die Logik ist mir schon klar, ich suche ja nicht den Fehler.
        Wie arbeitet man denn mit Platzhaltern?

        1. Ohne TOFU.

        2. z.B. indem Du in die Variable $mailtext 'Hallo @BENUTZER@.' schreibst und später, wenn der einzusetzende Wert bekannt ist, das @BENUTZER@ durch geeignete Funktionen (ereg_replace o.ä.) ersetzt?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|