Variable mit php Code als Inhalt

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

  • Variable mit php Code als Inhalt

    Ich lese Daten einer Datenbank aus und erzeuge damit dynamisch php_code, den ich in einer Variable speichere.
    Gebe ich den Code per echo aus (z.B. ('0' == $item['section_level']) && ('1' == $item['section_left']) && ('34' == $item['section_right']) || ('1' == $item['section_level']) && ('2' == $item['section_left']) && ('23' == $item['section_right']) || ('2' == $item['section_level']) && ('9' == $item['section_left']) && ('18' == $item['section_right']) ) und kopiere diesen in die if Bedingung per Hand funktioniert das Script. Nun probiere ich seit Stunden den Code im Code ausführen zu lassen.
    Was mache ich falsch?
    Bin für jede Hilfe dankbar!

  • #2
    eval aber "eval is evil"

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Re: Variable mit php Code als Inhalt

      Original geschrieben von bonnie
      Was mache ich falsch?
      Bist du wirklich so blauäugig anzunehmen, wir könnten das aus dem Kaffeesatz lesen, wenn du uns nicht zeigst, wie du das machst ...?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        code beispiel

        Hier ein Code Beispiel, wenn ich das echo Ergebnis per Hand in den Code kopiere, ist alles ok!

        PHP-Code:
        <?
        $item['section_level'] = '4';
        $item['section_left'] = '9';
        $item['section_right'] = '18';

        $level = '(("2" == "'.$item["section_level"].'") &&
         ("9" == "'.$item["section_left"].'")
         && ("18" == "'.$item["section_right"].'"))';

        $level = str_replace('"',"'",$level);
        eval("\$level = \"$level\";");

        echo $level.'<br>';

        if ($level) {
            echo '::::::::: OK ::::::::';
        } else {
        echo '::::::::: Dumm gelaufen! :::::::::::::';
        }
        ?>
        Zuletzt geändert von wahsaga; 15.03.2007, 10:39.

        Kommentar


        • #5
          Re: code beispiel

          Original geschrieben von bonnie
          Hier ein Code Beispiel, wenn ich das echo Ergebnis per Hand in den Code kopiere, ist alles ok!
          Und andernfalls ist es also vermutlich "nicht OK" ...?

          Tja, nicht OK taugt als Problembeschreibung leider immer noch nichts - also liefere eine nachvollziehbare solche jetzt bitte endlich mal!
          Welche Fehlermeldungen bekommst du, was passiert statt des erwarteten, etc.

          error_reporting auf E_ALL dürfen wir ja wohl hoffentlich voraussetzen, denn unsere Regeln hast du ja sicher gelesen und umgesetzt.
          (Edit: Nein, hast du offenbar nicht, deshalb muss ich deinen überbreiten Code für dich umbrechen. Auch das machst du bitte beim nächsten Mal selbst.)
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Achso

            Vielen Dank für deine Hilfe!!!!!!!

            Tut mir leid, das die Umbrüche nicht deinen (euren) Wünschen entsprach.

            Entschuldigung, wenn ich mich nicht verständlich ausgedrückt habe!

            ==> Es wird kein Fehlercode erzeugt!

            ==> die Variable $level beinhaltet Php-Code, welcher in der if-Bedingung einsetzt, benutzt und ausgeführt werden soll!

            ==> Ich vermute einen Syntax-Fehler!

            $level ==> (('2' == '2') && ('9' == '9') && ('18' == '18'))

            Ergebnis erwartet ==> ::::::::: OK ::::::::
            Ergebnis ausgeben ==> ::::::::: Dumm gelaufen! :::::::::::::

            Danke

            Kommentar


            • #7
              Re: Achso

              Dann schau dir doch mal an, was du da eval'st:

              echo "\$level = \"$level\";";

              Ist das der Code, den du ausgeführt haben willst?
              Ich vermute mal Nein.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Das ist nur eine geküzte Version!

                Sonst beinhaltet $level

                ('0' == $item['section_level']) && ('1' == $item['section_left']) && ('34' == $item['section_right'])

                ... oder so ...

                ('0' == $item['section_level']) && ('1' == $item['section_left']) && ('34' == $item['section_right']) || ('1' == $item['section_level']) && ('2' == $item['section_left']) && ('23' == $item['section_right'])

                ... oder so ...

                ('0' == $item['section_level']) && ('1' == $item['section_left']) && ('34' == $item['section_right']) || ('1' == $item['section_level']) && ('2' == $item['section_left']) && ('23' == $item['section_right']) || ('2' == $item['section_level']) && ('9' == $item['section_left']) && ('18' == $item['section_right'])

                Kommentar


                • #9
                  Ich sagte, du sollst dir anschauen, welchen Code du da effektiv an eval zur Ausführung übergibst.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Danke eval("\$level = $level;"); funktioniert richtig! Ende .............

                    Kommentar

                    Lädt...
                    X