Variable wird nicht mit Wert sondern mit Name ausgegeben...

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

  • Variable wird nicht mit Wert sondern mit Name ausgegeben...

    ...ich lese einen String aus der Datenbank und gebe ihn mit echo aus. In diesem String ist eine Variable z.B. $test="Teststring", es wird allerdings nicht Teststring sondern $test ausgegeben.
    Warum dies? in der Datenbank ist kein \ vor dem $ gestellt?

  • #2
    das geht nur mit eval

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      falsch Berni !

      PHP-Code:
      $var1="test";
      $test="inhalt";

      // Ausgabe
      echo $var1// ergibt "test"
      echo $test// ergibt "inhalt"
      echo $$var1;   // ergibt "inhalt" !!! 
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        Danke Berni, das war's - aber gibt's auch eine Erklärung für den Unterschied zwischen dem String

        "Dies ist ein test $test" der lokal erzeugt wurde und dem gleichen der aus der Datenbank erstellt wurde?

        Kommentar


        • #5
          PHP interpretiert den String aus der Datenbank als einen 'normalen' text. Mit Eval wird der String dem Interprter übergeben und ausgewertet.

          php-Entwicklung | ebiz-consult.de
          PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
          die PHP Marktplatz-Software | ebiz-trader.de

          Kommentar


          • #6
            Ok, vielen Dank. Datenbankinhalte kann ich also als Strings in einfachen Anführungsstrichen ansehen.

            Auch danke an Dich TBT für Deine Hilfe, auch wenn ich etwas anderes meinte

            Kommentar


            • #7
              Hallo, ich schon wieder.

              PHP-Code:
              $fehler1="Test1";
              $fehler2="Test2";
              $titel="Adminlogin";
              $adminheader  ersetze_platzhalter(hole_vorlage('adminheader'));
              $adminlogin   ersetze_platzhalter(hole_vorlage('adminlogin'));
              eval (
              "\$adminheader = \"$adminheader\";");
              eval (
              "\$adminlogin = \"$adminlogin\";");
              echo 
              $adminlogin
              ersetze_platzhalter ersetzt die Platzhalter durch die jeweiligen Einträge in der DB. hole_vorlage liest die HTML-Vorlagen aus der DB. Diese beiden Funktionen arbeiten ordnungsgemäß.
              Bei den beiden Evals kotzt PHP mir aber einen Parseerror aus. Der Verschwindet wenn ich das zweite $-Zeichen escape. Allerdings werden dann die oben stehenden Variablen nicht ersetzt, sondern normal als $titel, etc. ausgegeben. $adminheader steht übrigens auch als Variable im Quelltext vom String $adminlogin
              Was mache ich falsch? Der Code steht übrigens NICHT in einer Funktion.

              Kommentar


              • #8
                also wenns dir nur daran geht variablen zu parse würde ich lieber
                parse_str
                nehmen
                meine Projekte bestaunen: http://www.kleiza.de

                Kommentar


                • #9
                  Wenn ich es richtig sehe ist die Funktion aber eher für Variablen in der URL gedacht, oder?

                  In meinem Beispiel sieht der $adminlogin String vereinfach ungefähr so aus:

                  <html>
                  <head>
                  <title>$titel</title>
                  </head>
                  <body>
                  $fehler1<br>
                  $fehler2<br>
                  $adminheader
                  </body>
                  </html>

                  Da kann ich die Funktion ja nicht so anwenden wenn ich es richtig verstehe.

                  Kommentar


                  • #10
                    achso, jetzt versteh ich erst, so kannste dann parse_str vergessen... ich dachte du liest variablen aus deiner datenbank und willst die dann halt zu richtigen variablen ausgeben
                    meine Projekte bestaunen: http://www.kleiza.de

                    Kommentar

                    Lädt...
                    X