Michel1966: Validierung mit PHP Element

Hallo zusammen,
da ich so gut wie keine Ahnung von PHP habe, brauche ich Hilfe bei der Validierung eines Dokumentes.
In der HTML Version sieht das so aus:
http://www.visual-3d.de/kunden/partyservice/seiten/index.htm
Nun wollte ich die Navigation mit include einbinden - dannach sieht meine Seite so aus und ist nicht mehr validiert:
http://www.visual-3d.de/kunden/partyservice/seiten/index.php
In die index.php habe ich folgende PHP Elemente eingebaut:
<?
session_start();
?>
und
<? include('navi.php'); ?>

Vielen Dank für eure Hilfe.

Gruß - Michel

  1. Hallo

    In der HTML Version sieht das so aus:
    http://www.visual-3d.de/kunden/partyservice/seiten/index.htm
    Nun wollte ich die Navigation mit include einbinden - dannach sieht meine Seite so aus und ist nicht mehr validiert:
    http://www.visual-3d.de/kunden/partyservice/seiten/index.php

    Dass die Seite jetzt mit der Endung 'php' ausgestattet ist, spielt bezüglich der Validität des HTML-Quelltextes keine Rolle.

    In die index.php habe ich folgende PHP Elemente eingebaut:
    <?
    session_start();
    ?>
    und
    <? include('navi.php'); ?>

    Wie sieht der damit generierte HTML-Quelltext aus? *Der* ist es, der validiert wird, der ist es, der Fehler enthält. Wenn du dich mal bequemtest, in den erzeugten Quelltext zu schauen, würdest du sehen, dass mitten im Dokument ein vollständiges anderes Dokument eingefügt wird. Wenn du mit PHP ein Dokument zusammenfügst, muss hinterher *ein Dokument* mit einer gültigen Struktur herauskommen. Füge also nur die HTML-Schnipsel ein, die an der Stelle gebraucht werden.

    Tschö, Auge

    --
    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
    Terry Pratchett, "Wachen! Wachen!"
    Veranstaltungsdatenbank Vdb 0.3
  2. Moin,

    http://www.visual-3d.de/kunden/partyservice/seiten/index.php

    da taucht mitten im Dokument ein neues head-Element und ein zweiter body auf. Hast du etwa ein vollständiges HTML-Dokument includiert? Das kann nix werden. Schau dir den Quelltext an, der letztendlich ausgeliefert wird und der beim Browser ankommt.

    <?
    session_start();
    ?>

    <? include('navi.php'); ?>

    Die short_open_tags solltest du dir gar nicht erst angewöhnen. Sobald du mal serverseitig XML verarbeiten willst, kann das Probleme machen. Deshalb schalten viele Hoster dieses sogenannte Feature von vornherein ab. Schreibe also deine php-Tags aus, dann bist du auf der sicheren Seite.

    Ciao,
     Martin

    --
    Keine Sorge, wir finden für jede Lösung ein Problem.
    1. Hi!

      Die short_open_tags solltest du dir gar nicht erst angewöhnen. Sobald du mal serverseitig XML verarbeiten willst, kann das Probleme machen.

      "Serverseitig XML verarbeiten"? Dann müsste aber der PHP-Code in XML eingebettet sein und dann diese XML/PHP-Dateien verarbeitet werden. Das halte ich für ein äußerst seltenes Szenario. Anschließend müsste die Ausgabe ja auch noch durch eine XSL-Transformation gehen, zumindest wenn man Webseiten ausliefern will. Den Browsern XML+XSL vorzusetzen, ist vielleicht zu Testzwecken akzeptabel, sonst aber kaum.

      Deshalb schalten viele Hoster dieses sogenannte Feature von vornherein ab.

      Welche vielen Hoster sind das zum Beispiel? Zusatzfrage: Haben die zu viel Personal, um die durch das Abschalten entstandenen Supportfragen zu bearbeiten?

      Schreibe also deine php-Tags aus, dann bist du auf der sicheren Seite.

      Unabhängig von der in meinen Augen zweifelhaften Hoster-Aussage, bin ich hier zweigeteilter Meinung. Es ist ohne Zweifel so, dass einige PHP-Installationen mit deaktiviertem short_open_tags laufen und dann solche Scripte dort nicht direkt einsetzbar sind. Das betrifft in der Regel jedoch nur solche Scripte, die für die Weitergabe vorgesehen sind. Wer allerdings Einfluss auf die Konfiguration seiner PHP-Installation haben kann und bei selbst erzeugten Code mit dieser Problematik in Konflikt gerät, ist selbst schuld.

      Andererseits spart man sich Tipparbeit und Zeichen, wenn man PHP als Templatesystem verwendet, also öfter mal kleinere Ausgaben in HTML-Code einfügen möchte.

      Und der Konflikt mit der XML-Deklaration tritt praktisch nur dann auf, wenn man vollständige XHTML-Dokumente ausliefern lassen will, und sich die XML-Deklaration außerhalb eines <?php-?>-Bereiches befindet. Einerseits will man die XML-Deklaration üblicherweise nicht haben, weil man sich die dadurch entstehenden Nebenwirkungen auf das Rendering ersparen möchte. Andererseits gibt es den einfachen Workaround, die XML-Deklaration in PHP als String zu notieren und den auszugeben, wenn man sie denn unbedingt haben will.

      Lo!

  3. Hmmm, das war ja einfach.
    Aber so ist das, wenn man von PHP keine Ahnung hat.
    War wohl nur der überflüssige Quelltext.

    Danke !!!

    Gruß - Michel