Mdamaszek: PHP in HTML

Hallo,

ich wollte gerne PHP Seite in einem HTML Text einfügen. Wie geht das.
Ich habe eine php Seite mit den den Namenstagen und wollte diesen Anzeige in die HAuptseite einbinden.
Wie geht das?

Mdamaszek

  1. Hallo Mdamaszek,

    Wie geht das?

    Einfache Geschichte: Innerhalb einer Html-Datei startest Du einen PHP-Bereich mit dem Start-Tag <?php und schliesst diesen wieder mit ?>. Du kannst auch die Short-Tags <? und ?> nehmen aber das würde ich Zwecks Kompatibilität nicht machen. Innerhalb dieser Klammern notierst Du Deine PHP-Anweisungen. That's it!

    Mehr und genauere Infos findest Du unter:
    http://de3.php.net/manual/de/language.basic-syntax.php

    Gruss AndreD

    1. Hallo AndreD,

      also müsste ich in einer HMTL Seite in einer bestimmten Stelle sowas schreiben:

      <?php echo("http://www.doamin.de/seiteXXX.php"); ?>

      RICHTIG???

      1. Hallo Mdamaszek,

        RICHTIG???

        Jo, passt soweit. Viele schenken sich die Klammern beim echo, aber ich mache es auch weils für mich einfach besser ausschaut und so ist es AFAIK eigentlich auch korrekt(er).

        Gruss AndreD

        1. Klappt zwar nihct, aber ich versuche es weiter.

          Wo finde ich es in selfhtml.net???

          MDamaszek

          1. Hallo,

            Klappt zwar nihct, aber ich versuche es weiter.

            Naja, in Deinem Beispiel wird auch nur die URL als String ausgegeben. Bist Du Dir sicher das PHP auf Deiner Testumgebung korrekt installiert ist? Das kannst Du z.B. testen in dem Du eine neue Datei info.php erstellst. In diese schreibst Du einfach nur: <?php phpinfo(); ?> Rufst Du diese Datei auf, sollten Angaben zur installierten PHP-Version erscheinen. Falls dies nicht passiert, scheint etwas grundsätzlich mit Deiner PHP-Installation nicht zu stimmen.

            Wo finde ich es in selfhtml.net???

            SelfHtml beschäftigt sich in erster Linie mit Html, Javascript und CSS. PHP wird eigentlich nur im Forum besprochen. Wirklich Hilfe bekommst Du - wie schon Thomas schrieb - in einem guten Buch oder bei den bereits genannten Links in den Antworten zu diesem Thread!

            Gruss AndreD

            1. Hallo,

              Klappt zwar nihct, aber ich versuche es weiter.
              Naja, in Deinem Beispiel wird auch nur die URL als String ausgegeben. Bist Du Dir sicher das PHP auf Deiner Testumgebung korrekt installiert ist? Das kannst Du z.B. testen in dem Du eine neue Datei info.php erstellst. In diese schreibst Du einfach nur: <?php phpinfo(); ?> Rufst Du diese Datei auf, sollten Angaben zur installierten PHP-Version erscheinen. Falls dies nicht passiert, scheint etwas grundsätzlich mit Deiner PHP-Installation nicht zu stimmen.

              Hallo AndreD:

              Das klapt nicht. Es läuft einfach nciht. Liegt es daran, dass ich vielleicht sehr großes HTML Code haben und zwischendurch php einfügen will?
              Ich habe sogar ein Buch, das klappt hier auch nicht, wie es steht. Das BuchPHP Big Pack (Data Becker).

              MFG

              1. Hallo,

                Das klapt nicht. Es läuft einfach nciht.

                Woher glaubst Du zu wissen, dass auf Deinem Webspace PHP _ueberhaupt_ laeuft?
                Viele Gratis- und Billig-Provider bieten es nicht an:

                • aus Sicherheitsgruenden
                • weil sie wollen, dass Du ein teureres Abo waehlst.

                Ein Anhaltspunkt, ob der Webserver PHP kann,
                ist der HTTP-Header, den er mit der Seite ausliefert.
                http://cgi.w3.org/cgi-bin/headers
                Wenn dort nichts von PHP steht, kannst Du es meist vergessen.

                Weshalb meinst Du, dass es mit der betreffenden Dateiendigung (*.php, *.php3, *.html ...) laeuft?

                Die Laenge des HTML-Quelltextes hat garantiert nichts damit zu tun.

                Gruesse,

                Thomas

                1. Hallo,

                  Das klapt nicht. Es läuft einfach nciht.

                  Woher glaubst Du zu wissen, dass auf Deinem Webspace PHP _ueberhaupt_ laeuft?

                  Hier die Beschreibung meines Webservers:

                  ProFTPD, QMail, PHP 4, Perl 5.6.1 und MySQL 3.3.21

                  Weshalb meinst Du, dass es mit der betreffenden Dateiendigung (*.php, *.php3, *.html ...) laeuft?

                  Weil das ein Gästebuch ist mit index.php!!!

                  Ein Anhaltspunkt, ob der Webserver PHP kann,
                  ist der HTTP-Header, den er mit der Seite ausliefert.
                  http://cgi.w3.org/cgi-bin/headers Hier das Resultat:

                  Results
                  200 OK
                  Server: Apache/1.3.23 (Unix) PHP/4.3.3
                  Content-Type: text/html
                  Accept-Ranges: bytes
                  Date: Tue, 07 Oct 2003 14:23:51 GMT
                  Connection: close
                  Etag: "6c1d8-6e33-3f81bcfc"
                  Content-Length: 28211
                  Last-Modified: Mon, 06 Oct 2003 19:05:32 GMT

                  Jetzt weiß ich nichts mehr.

                  Mdamaszek

                  1. Hallo,

                    Weshalb meinst Du, dass es mit der betreffenden Dateiendigung (*.php, *.php3, *.html ...) laeuft?
                    Weil das ein Gästebuch ist mit index.php!!!

                    Also, in *.php-Dateien scheint PHP ja schonmal zu funktionieren.

                    Jetzt probier es mal mit _ganz_kurzen_, einfachen Beispielen aus.

                    Datei test.php - einziger Inhalt:
                    <?php
                    echo "PHP funktioniert!";
                    ?>

                    Datei datum.php - einziger Inhalt:
                    <?php
                    print("Datum+Zeit: ".date("d.m.Y H:i:s", time()));
                    ?>

                    Was kommt beim Browser an (Quelltext-Ansicht)?
                    Wenn Dir der Browser den PHP-Quelltext erhaelt, dann
                    wird PHP vom Webserver nicht geparst (uebersetzt/angewandt).

                    Den Test mit phpinfo() hat Dir Andre ja in [pref:t=59584&m=334947]
                    schon beschrieben.

                    Wenn in all diesen Beispielen PHP nicht funktioniert, wende Dich an Deinen Provider.

                    Gruesse,

                    Thomas

                    1. Hallo AndreD:

                      Datei test.php - einziger Inhalt:
                      <?php
                      echo "PHP funktioniert!";
                      ?>
                      Datei datum.php - einziger Inhalt:
                      <?php
                      print("Datum+Zeit: ".date("d.m.Y H:i:s", time()));
                      ?>

                      Hallo Das hat funktioniert.
                      Bei der einen Seite hat er mit die Zeit, Tag, usw angezeigt.
                      bei der Einen stand: PHP funktionert!!!

                      Was jetzt???
                      Muss ich immer nur »» <?php

                      echo "PHP funktioniert!";
                      ?>

                      WEnn ich was einfügen will, oder kann ich auf in einen langen HMTL Code einfügen???!?!?!?!

                      Vielen Dank für die ganze Mühe

                      Mdamaszek

                      1. Hallo,

                        Hallo AndreD:

                        Du antwortest auf ein Posting von mir, Thomas...

                        Hallo Das hat funktioniert.

                        Schoen! ;-)

                        WEnn ich was einfügen will, oder kann ich auf in einen langen HMTL Code einfügen???!?!?!?!

                        Du kannst auch PHP-Befehle an einer beliebigen Stelle im HTML-Code einfuegen.

                        Wichtig ist, dass das Ergebnis, d.h. der HTML-Code, der an den Browser geliefert wird,
                        sinnvolles HTML ist.

                        Versuch es einmal mit einer beliebigen HTML-Datei, die Du schon hast.
                        Benenne sie um in test.php oder so.
                        Gehe im Quelltext an die Stelle, wo Du das Datum einfuegen willst,
                        und gib dort ein:

                        <p>
                        <?php
                        print("Datum+Zeit: ".date("d.m.Y H:i:s", time()));
                        ?>
                        </p>

                        Hochladen und ausprobieren...
                        Im Quelltext, der an den Browser ausgeliefert wird,
                        sollte jetzt folgendes stehen:
                        <p>
                        Datum + Zeit: 07.10.2003 17:30:01
                        </p>

                        Gruesse,

                        Thomas

                      2. Hallo,

                        Hallo AndreD:

                        Das war Thomas der Dir den letzten Tipp gegeben hat :-)

                        Was jetzt???
                        Muss ich immer nur »» <?php

                        echo "PHP funktioniert!";
                        ?>

                        Nein! Das war doch nur ein Beispiel um zu sehen ob PHP grundsätzlich läuft.

                        WEnn ich was einfügen will, oder kann ich auf in einen langen HMTL Code einfügen???!?!?!?!

                        Du kannst grundsätzlich HTML- und PHP-Code mischen. Wichtig ist 1.  das die Datei eine Endung hat welche Dein Webserver als PHP-Datei erkennt (in der Regel .php) und dann die Anfrage auch an das PHP-Modul auf dem Server weiterleitet das dieses die Seite erstellt und als Html an Deinen Browser schickt.
                        Desweiteren muss zum 2. der PHP-Code innerhalb der sog. Delimiter, also <?php echo(Text); ?> stehen, das dieser auch interpretiert werden kann!

                        Ich war mal so frei und hab Dir ein kleines Beispiel zum besseren Verständnis erstellt:

                        ---------------------------------------------------------------------
                        <?php

                        $tabellenfarbe = "#CCCCCC";
                        $zellenfarbe   = "#FFFFFF";

                        function serverVars( $zellenfarbe )
                        {
                          $text = "";

                        foreach( $_SERVER as $key => $value )
                          {
                            $text .= "  <tr>\n";
                            $text .= "    <td style="background-color:" . $zellenfarbe . ";">" . $key . "</td>\n";
                            $text .= "    <td style="background-color:" . $zellenfarbe . ";">" . $value . "</td>\n";
                            $text .= "  </tr>\n";
                          }

                        return( $text );
                        }
                        ?>

                        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

                        <html>
                        <head>
                         <title>Unbenannt</title>
                        </head>

                        <body>

                        <h1>Dies sind alle Werte der globalen Variablen $_Server:</h1>

                        <?php
                        echo( "<table border="0" cellspacing="1" cellpadding="5" style="background-color:" . $tabellenfarbe . ";">\n" );

                        echo serverVars( $zellenfarbe );

                        echo( "</table>\n" );

                        ?>

                        <p>Diese obere Ausgabe erfolgte mit PHP, dieser Text ist wieder HTML.
                        Wenn man in den Sourcecode im Browser schaut ist alles HTML, man
                        sieht nichts vom PHP-Code da dieser serverseitig geparst und in
                        HTML gewandelt wird</p>

                        </body>
                        </html>
                        ---------------------------------------------------------------------

                        Kopiere das mal in eine Datei, nenne diese test.php oder so und rufe diese im Browser auf, Du wirst feststellen das im Browser reines Html ankommt. Es ist also im Prinzip egal wie oft und wann Du PHP-Code in die Datei schreibst. Der Server parst (nach einem generellen Check auf allgemeine Fehler wie z.B. fehlende Semikolon oder nicht vorhandene Funktionen etc.) die Datei von oben nach unten und stellt statischen Html und PHP-Ausgaben per echo() auch in der Reihenfolge dar, wie diese in der Datei notiert sind.

                        Das Mischen von Html und PHP ist am Anfang ok, später wirst Du feststellen dass eine logische Trennung von Html und PHP auf Dauer übersichtlicher und sauberer ist.

                        Vielen Dank für die ganze Mühe

                        Keine Ursache, PHP ist eine tolle Sache es lohnt sich das man sich damit auseinandersetzt. Allerdings wäre es für Dich wirklich gut wenn Du Dich nach einem guten Buch umschaust um mal Grundkenntnisse zu erwerben. http://www.php.net/manual/de/ und auch http://www.dclp-faq.de/ch/ch-about.html sind im Web meiner Meinung nach die besten Anlaufstellen für jeden der PHP nutzen möchte.

                        Weiterhin viel Spass und Gruss
                        AndreD

              2. habe d'ehre

                Das klapt nicht. Es läuft einfach nciht. Liegt es daran, dass ich vielleicht sehr großes HTML Code haben und zwischendurch php einfügen will?

                *ruhigbleib*
                Was klappt nicht?
                Wie heisst Die Datei, in welcher Du irgendeinen PHP-Code einfuegen willst.
                Wie hast Du den PHP-Code eingefuegt?

                *grantig*
                Beispiel 1:

                • Du hast eine Datei mit Namen meinhtml.html
                • Du fuegst in diese Datei eine Anweisung <?php include("irgendwas.php"); ?> ein
                • DAS FUNKTIONIERT NICHT

                Beispiel 2:

                • Du hast eine Datei mit Namen meinhtml.php
                • Du fuegst in diese Datei eine Anweisung <?php include("irgendwas.php"); ?> ein
                • DAS FUNKTIONIERT

                Also: teile uns endlich mit, was Du treibst. Wie heissen die beiden Dateien. Das Wetter ist dermassen besch..... hier, ich will nicht noch zusaetzlich Raetselraten.

                carpe diem
                Wilhelm

          2. Hallo,

            Klappt zwar nihct, aber ich versuche es weiter.

            Kein Wunder, es ist einfach falsch.
            Wie Wilhelm und ich schon schrieben.

            Wo finde ich es in selfhtml.net???

            SelfHTML beschaeftigt sich mit HTML, nicht (oder nur am Rande) mit PHP.
            Zwei wichtige Info-Quellen fuer PHP (Manual, dclp-FAQ)  habe ich Dir
            im Posting [pref:t=59584&m=334886] bereits genannt.

            Es gibt auch http://www.selfphp.info/
            Ist aber fuer Anfaenger IMHO ungeeignet, da es vor allem
            eine Aufzaehlung der Befehle u.s.w. ist, aber nicht den
            guten, didaktischen Aufbau von SelfHTML hat.

            Gruesse,

            Thomas

      2. habe d'ehre

        also müsste ich in einer HMTL Seite in einer bestimmten Stelle sowas schreiben:
        <?php echo("http://www.doamin.de/seiteXXX.php"); ?>
        RICHTIG???

        Nein!

        1.) Dieser Befehl schreibt Dir nur den String "http://www.doamin.de/seiteXXX.php" auf den Bildschirm.

        2.) Deine Datei muesste eine Endung erhalten, welche der PHP-Parser kennt (.php oder .php3 oder .phtml usw.). Es kommt dabei auf die Eintraege in der Webserverkonfiguration an. Alle Dateien mit .html durch den Parser zu jagen halte ich persoenlich fuer sinnbefreit.

        3.) Wenn Du Scripte in Deinen Code einfuegen willst, solltest Du Dich mit "include" beschaeftigen.

        Zusammenfassend: Folge den bereits angegebenen Links und beschaeftige Dich mal grundsaetzlich mit dieser Sprache.

        carpe diem
        Wilhelm

      3. Hallo,

        also müsste ich in einer HMTL Seite in einer bestimmten Stelle sowas schreiben:
        <?php echo("http://www.doamin.de/seiteXXX.php"); ?>
        RICHTIG???

        Naja, wenn Du willst, dass an dieser Stelle im HTML-Quelltest die URL
        http://www.doamin.de/seiteXXX.php
        steht, ist das schon richtig. ;-)

        Um den Inhalt einer externen Ressource einzufuegen, waere wohl
         include(), readfile() oder fpassthru() besser geeignet.
        Je nach (Sicherheits-) Einstellungen von PHP ist es nur moeglich,
        Ressourcen vom eigenen Server einzubinden, mit relativen URLs.
        Es ist gefaehrlich, fremden PHP-Code zu verwenden und auf
        dem eigenen Server ausfuehren zu lassen.

        Die Ressource, die eingefuegt wird, darf uebrigens keine vollstaendige
        HTML-Seite (mit HEAD, BODY u.s.w.) sein, sofern Du sie in
        eine vollstaendige Seite einbettest, sonst hast Du ja zweimal HEAD,
        zweimal BODY u.s.w., was voellig falsch waere.
        Normalerweise benutzt man include() u.s.w., um - mehr oder weniger
        kleine - "HTML-Bausteine" an der gewuenschten Stelle einzufuegen.

        HTH, Gruesse,

        Thomas

  2. Hallo,

    ich wollte gerne PHP Seite in einem HTML Text einfügen. Wie geht das.

    PHP in HTML einfuegen:
    http://www.php.net/manual/de/language.basic-syntax.php
    http://www.tiptom.ch/tests/phpssi/einbinden.php

    Weitere PHP-Dateien einbetten:
    http://www.php.net/manual/de/function.include.php

    Tip: Kauf Dir ein Buch zu PHP, damit Du so grundlegende Dinge
    nicht hier nachfragen musst.

    Oder lies zumindest folgendes mal durch:
    http://www.dclp-faq.de/
    http://www.php.net/manual/de/
    (Beides gibt's auch zum Download)

    Gruesse,

    Thomas