Chris: PHP aus Datenbank nur in Quelltext sichtbar

Hallo,
ich bastle gerade an einer homepage und möchte dafür die inhalte im html-format aus einer datenbank ausladen lassen, später kommt dahinter auch ein kleines cms, mit dem ich die inhalte einfach bearbeiten kann.

Das funktioniert soweit auch ganz gut.
Problem ist nur, dass ich nun auch teilweise kleine php-schnipsel mit in die inhalte packen muss.

Wenn ich nun die inhalte laden lasse, werden die html-inhalte ohne probleme angezeigt, ein einfaches

<? echo "test"; ?>

zwischen dem html wird allerdings großzügig ignoriert.

Diesen einfachen php-befehl sehe ich nur im quelltext des browsers.

Wenn ich nun versuche, den code aus der datenbank per eval() ausführen zu lassen, meckert er natürlich wegen der html-tags in dem code.

Habt Ihr eine idee, wie ich am besten verfahren kann?

Grüße
Chris

  1. Hi Chris,

    Problem ist nur, dass ich nun auch teilweise kleine php-schnipsel mit in die inhalte packen muss.

    wenn auch PHP-Code Teil der Ressource ist, dann gib sie auch als solche aus.

    Wenn ich nun die inhalte laden lasse, werden die html-inhalte ohne probleme angezeigt, ein einfaches <? echo "test"; ?> zwischen dem html wird allerdings großzügig ignoriert.

    Natürlich, Du gibst eine html-Seite aus und der Browser interpretiert das als html-Tag. Er weiß zwar nicht, was Du von ihm willst, aber er interpretiert es als Auszeichnung/Anweisung.

    Diesen einfachen php-befehl sehe ich nur im quelltext des browsers.

    Richtig. Ein <p> oder <div> siehst Du ja auch nur im Quelltext, oder?

    Habt Ihr eine idee, wie ich am besten verfahren kann?

    Das Ganze als PHP-Ressource ausgeben lassen.

    Mit lieben Grüßen aus Wien

    Michi

    --
    Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
    Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    It is nice to be important - but it is more important to be nice.
    1. Ok, danke für eure Antworten.
      Ich war mir erstmal generell nicht mehr sicher, ob man bei php programmierung <? oder <?php verwenden sollte.

      Das Umstellen den kleinen PHP Codes in der Datenbank auf <?php echo "test"; ?> hat logischerweise kein Besserung gebracht.

      Nur, wie kriege ich es nun hin, den sich in der Datenbank befindenden HTML-Code als solchen interpretieren lassen, den PHP-Code innerhalb des HTML-Codes allerdings ausführen zu lassen, also als PHP parsen zu lassen?

      Entschuldigt bitte die blöden Fragen. :P

      Schöne Mittagspause
      Chris

      1. Hi Chris,

        Du möchtest am Ende die Ausgebe von "test".

        1. Möglichkeit:

        Das Wort 'test' steht als solches in der DB. Von dort holst Du es und fügst es in den PHP-Code des Ausgabeskripts. In der DB selbst steht _nur_ das Wort. Das Drumherum, also das 'echo' ist Teil der Ressource, die für die Ausgabe zuständig ist.

        2. Möglichkeit:

        Du schreibst eine PHP-Ressource 'test.php':

        <?php  
         echo "test";  
        ?>
        

        Und das includierst Du jetzt bei der Ausgabe. (Hier nur mit Minimalstrukturierung):

        <html>  
         <head>  
         </head>  
         <body>
        
          <?php  
           include("test.php");  
          ?>
        
         </body>  
        </html>
        

        Diese 2 Möglichkeiten darfst Du nicht verwechseln oder vermischen.

        Entschuldigt bitte die blöden Fragen.

        Es gibt keine blöden Fragen, nur blöde Antworten. Ich hoffe, meine hier zählt nicht dazu.

        Mit lieben Grüßen aus Wien

        Michi

        --
        Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
        Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        It is nice to be important - but it is more important to be nice.
      2. Mahlzeit Chris,

        Nur, wie kriege ich es nun hin, den sich in der Datenbank befindenden HTML-Code als solchen interpretieren lassen,

        Grundsätzlich gilt IMHO: eine Datenbank dient zur Speicherung von Daten - nicht von Programmcode. Wenn Du Programmcode in einer Datenbank speicherst, lebe mit den Problemen, die sich daraus ergeben.

        den PHP-Code innerhalb des HTML-Codes allerdings ausführen zu lassen, also als PHP parsen zu lassen?

        Indem Du - wie bereits gesagt - den Code per eval() ausführen lässt. Bedenke dabei, dass die Funktion PHP-Code als Argument erwartet (Du solltest also dafür sorgen, dass sie auch PHP-Code und kein HTML mit eingebetteten PHP-Schnipseln bekommt!) und dass ferner gilt:

        eval() is evil!

        Immer.

        Entschuldigt bitte die blöden Fragen. :P

        Kein Problem - auch Liliputaner haben mal klein angefangen ... :-)

        MfG,
        EKKi

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

    <? echo "test"; ?>

    diese Shorttags waren noch nie eine gute Idee. Benutze die Langform:

    <?php echo "test"; ?>

    Warum die Kurzform Problematisch ist, liegt daran, dass sie auch für andere Fälle, <http://de.selfhtml.org/xml/regeln/xmldeklaration.htm@title=wie z.B. bei XML gebraucht wird>.

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hi Felix,

      ich habe den Fragenden so verstanden, dass eine html-Ressource ausgegeben wird. Wenn Deine Interpretation richtig ist und die Ausgabe als PHP-Ressource vorliegt, schließe ich mich Dir natürlich an.

      Mit lieben Grüßen aus Wien

      Michi

      --
      Self-Code: ie:{ fl:| br:> va:} ls:# fo:| rl:° n4:# ss:| de:> js:{ ch:? mo:) zu:}
      Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      It is nice to be important - but it is more important to be nice.
    2. Hi

      Warum die Kurzform Problematisch ist, liegt daran, dass sie auch für andere Fälle, <http://de.selfhtml.org/xml/regeln/xmldeklaration.htm@title=wie z.B. bei XML gebraucht wird>.

      »»

      ja die Probleme sind da wo sowas <?xml version="1.0"?> auftaucht, aber unabhängig von Kurzschreibweise, oder?

      Gruss
      Mario

      ps. Wobei ich <?php auch klar der Kurzschreibweise <? vorziehe aber aus persönlicher Sicht.

      1. Lieber Mario,

        ja die Probleme sind da wo sowas <?xml version="1.0"?> auftaucht, aber unabhängig von Kurzschreibweise, oder?

        nein, nicht unabhängig. Wenn "short tags" aktiviert sind, dann wird sowohl <?php als auch <?xml als öffnendes PHP-Tag verstanden, da ja allein die Zeichenfolge "<?" bereits den Parser anschmeißt.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Hi Felix,

          »» ja die Probleme sind da wo sowas <?xml version="1.0"?> auftaucht, aber unabhängig von Kurzschreibweise, oder?

          nein, nicht unabhängig. Wenn "short tags" aktiviert sind, dann wird sowohl <?php als auch <?xml als öffnendes PHP-Tag verstanden, da ja allein die Zeichenfolge "<?" bereits den Parser anschmeißt.

          ok was ich meinte war, auch wenn short tags nicht aktiviert sind, gibt es Probleme, denn ich kann ja nicht mal XHTML mit der vorgesehenen Deklaration versehen.

          Gruss
          Mario

          1. Lieber Mario,

            | Wenn "short tags" aktiviert sind, dann wird sowohl <?php als auch <?xml als öffnendes PHP-Tag verstanden, da ja allein die Zeichenfolge "<?" bereits den Parser anschmeißt.
            ok was ich meinte war, auch wenn short tags nicht aktiviert sind, gibt es Probleme, denn ich kann ja nicht mal XHTML mit der vorgesehenen Deklaration versehen.

            oh Mann, geht es bitte etwas genauer?? Was bitteschön soll "kann ja nicht mal XHTML mit der vorgesehenen Deklaration versehen" bedeuten??? Verstehst Du nicht, wie das geht und kannst des daher nicht, oder hat Deine Tastatur ein kaputtes Fragezeichen, dass Du es nicht "kannst", oder verdirbt Dir Dein FTP-Programm Dateien beim Upload oder stürzt Dir Dein Browser regelmäßig ab, wenn eine Seite in XHTML ausgeliefert werden soll, ODER WAS???

            Liebe Grüße,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
            1. Hi,

              ich wollte lediglich wissen ob es nur Probleme mit <http://de.selfhtml.org/html/xhtml/unterschiede.htm#xml_deklaration@title=dieser Deklaration> aufgrund short-tags gibt oder sonst auch? Weil ich das nämlich nicht mehr verwende, seit ich damit Probleme hatte, welche genau weiss ich selbst nicht mehr aber in Xhtml Dokumenten.

              Mario

              1. Lieber Mario,

                wenn Du "die Probleme" nicht genauer ausführen willst, dann kann ich Dir dazu nicht helfen.

                welche genau weiss ich selbst nicht mehr aber in Xhtml Dokumenten.

                Meintest Du das Problem, dass der IE in den Versionen 6 und darunter mit dem "XML-Prolog" in den Quirksmode springt, sodass man ihn deswegen nicht notiert(e)?

                Liebe Grüße,

                Felix Riesterer.

                --
                ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  3. Hi,

    Wenn ich nun versuche, den code aus der datenbank per eval() ausführen zu lassen, meckert er natürlich wegen der html-tags in dem code.

    Nein, nicht "natuerlich" - nur bei nicht passender Verschachtelung von PHP-Bereichen und HTML-Bereichen.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“