Andi: Variable wird nicht interpretiert

Hi,

ich lasse in einer Textbox Html eingeben welches Variablen enthalten kann:

Hallo hier steht mein $name und meine Homepage zeigt auf <a href="$link/meinehomepage">Meine Homepage</a>

danach möchte ich diese Anweisung parsen, sprich die Variablen in den tatsächlichen Inhalt umtauschen.

Normalerweise müßte wohl die Ausgabe des Textes reichen oder?
Aber php interpretiert mir diesen Text nicht.

Kann mir da jemand helfen?

Gruß
Andi

  1. hi,

    Hallo hier steht mein $name und meine Homepage zeigt auf <a href="$link/meinehomepage">Meine Homepage</a>

    danach möchte ich diese Anweisung parsen, sprich die Variablen in den tatsächlichen Inhalt umtauschen.

    Normalerweise müßte wohl die Ausgabe des Textes reichen oder?

    nein, natürlich nicht.

    $variable = "text mit $variable drin";
    im script selber notiert, ist etwas anderes, als eine per POST/GET übergeben zeichenkette.

    Aber php interpretiert mir diesen Text nicht.

    hat auch nie jemand behauptet, dass es das soll/will.

    du wirst dir wohl selber eine möglichkeit, den text auf ggf. enthaltene variablennamen zu durchsuchen und diese bei vorhandensein durch ihren wert zu ersetzen, entwickeln müssen.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hi,

      nein das war nicht so gemeint. Ich speichere den Text ab und hole ihn dann per XML raus und da müßte mir php das doch interpretieren oder?

      Gruß
      Andi

      1. hi,

        nein das war nicht so gemeint. Ich speichere den Text ab und hole ihn dann per XML raus und da müßte mir php das doch interpretieren oder?

        _warum_ _sollte_ _es_?

        text ist text, und programmcode ist programmcode.
        in letzterem werden variablen und befehle interpretiert.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. Hi,

          hast du dann einen anderen Vorschlag, wie sich das lösen läßt?

          Gruß
          Andi

          1. Hi,

            probiere mal "Dies ist ein Test mit %s"
            und benutze sprintf zur Ausgabe.
            http://www.php.net/manual/de/function.sprintf.php

            Gruesse, Joachim

            --
            Am Ende wird alles gut.
  2. ich lasse in einer Textbox Html eingeben welches Variablen enthalten kann:

    Hallo hier steht mein $name und meine Homepage zeigt auf <a href="$link/meinehomepage">Meine Homepage</a>

    <dreinschau ausdruck="verwirrt">Aha.</dreinschau>

    danach möchte ich diese Anweisung parsen, sprich die Variablen in den tatsächlichen Inhalt umtauschen.

    Normalerweise müßte wohl die Ausgabe des Textes reichen oder?

    Dann hast Du den Text zum Browser geschickt.

    Aber php interpretiert mir diesen Text nicht.

    Geht schlecht, PHP weilt ja noch auf dem Server.

    Ich weiß nicht, was Du mit dieser Funktion vor hast, aber ich rate Dir eindringlich davon ab, eine Möglichkeit, mit der man PHP dazu bringt, den Inhalt eines Textfeldes auszuführen, zu nutzen. Statt '$name="bla";' kann man damit genauso gut '$f = fopen("riesig","w"); while (true) fwrite($f, " ");' ausführen. Oder ein PHP-Skript eintippen, mit dem sich in Deinem Namen fünf Millionen Spammails absetzen lassen.

    Wenn Du beliebige Variablen eines Skriptes mit einem Textfeld setzen willst, dann gebe ein Format vor, etwa so:

    variable=bla bla bla

    Und bearbeite dies von Hand, sprich Zeile für Zeile das erste Gleichheitszeichen suchen, den davor stehenden Teil als Variablennamen nehmen und den hinteren als Daten. Trage diese Variablen in ein Array ein, damit sie nicht die Umgebung Deines Skriptes verschmutzen oder skripteigene Variablen überschreiben:

    $vars = Array();
    foreach ($_POST["textfeld"] as $zeile) { // Zeile für Zeile
      $v = explode("=", $zeile, 2);          // Zeile an erstem = auftrennen
      if (sizeof($v) = 2) {                  // Trennung in zwei Teile geglückt?
          $vars[$v[0]] = $v[1];              // Daten speichern
      }
    }

    Aus dem Finger geschüttelt, Fehler darfst Du behalten.

    1. Hi,

      Normalerweise müßte wohl die Ausgabe des Textes reichen oder?

      Leider nicht

      »»Ich weiß nicht, was Du mit dieser Funktion vor hast, aber ich rate Dir eindringlich davon ab, eine Möglichkeit, mit der man PHP dazu bringt, den Inhalt eines Textfeldes auszuführen, zu nutzen. Statt '$name="bla";' kann man damit genauso gut '$f = fopen("riesig","w"); while (true) fwrite($f, " ");' ausführen. Oder ein PHP-Skript eintippen, mit dem sich in Deinem Namen fünf Millionen Spammails absetzen lassen.

      Verstehe dich schon, aber da haben nur authorisierte Benutzer zugriff und die Variablen, die die Benutzer verwenden dürfen sind beschränkt

      Gruß
      Andi

      1. hi,

        Verstehe dich schon, aber da haben nur authorisierte Benutzer zugriff und die Variablen, die die Benutzer verwenden dürfen sind beschränkt

        _wodurch_ sind die beschränkt?

        und _wenn_ es eine definierte menge an zulässigen variablen gibt, sollte es ja auch kein großes problem sein, das parsen selbst durchzuführen. vermutlich dürfte str_replace() dazu ja schon ausreichen.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."