Peeters: Validator XHTML 1.0 strict

Hallo,
ich habe mal ne frage, ich wollte meine Homepage mit validator.w3.org prüfen lassen nun hab ich aber immer noch ein Fehler und kann mir diesen nicht erklären:

Der Validator schreibt:

"Error  Line 22, Column 175: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag"
HTML:
22. <form id="formlogin" method="post" action="https://..."><input type="hidden" name="PHPSESSID" value="f6e88704e0a766d59d46f1cd26f53282" />

aber das habe ich in php an dieser stelle nur stehen:
PHP:
echo " <form id=\"formlogin\" method=\"post\" action=\"".$http.$server.$path."\">\n";

Kann mir jemand sagen warum das so ist?

Grüße

  1. Hi,

    Der Validator schreibt:

    "Error  Line 22, Column 175: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag"

    Ja da hat der Validator auch recht und die Fehlermeldung sollte eigentlich auch nicht all zu schwer zu verstehen sein oder?

    aber das habe ich in php an dieser stelle nur stehen:
    PHP:
    echo " <form id=\"formlogin\" method=\"post\" action=\"".$http.$server.$path."\">\n";

    Falls du deine Seite über URL überprüft hast kann der Validator auch nichts mit PHP anfangen.
    Wenn dort steht "Error Line 22" dann heißt das, dass in der 22 Zeile des Queltextes welcher der Browser ausgibt der Fehler liegt, und nicht in der 22. Zeile deines Scriptes.

    Aber um zu deinen Problem zurück zu kommen, ein <input> muss in einem der oben genannten Elementen stehen. Pack das ganze in ein <fieldset> und dein Problem ist gelöst.

    Und das nächste mal fütter doch einfach mal Google mit deiner Fehlermeldung, und du wirst genug Antworten finden.

    MfG
    Napster

    1. Om nah hoo pez nyeetz, Napster!

      Und das nächste mal fütter doch einfach mal Google mit deiner Fehlermeldung, und du wirst genug Antworten finden.

      ob die aber auch immer so kompetent sind ...

      Matthias

      --
      http://www.billiger-im-urlaub.de/kreis_sw.gif
    2. Om nah hoo pez nyeetz, Napster!

      Und das nächste mal fütter doch einfach mal Google mit deiner Fehlermeldung, und du wirst genug Antworten finden.

      Ob die aber auch immer so kompetent sind?

      Matthias

      --
      http://www.billiger-im-urlaub.de/kreis_sw.gif
    3. Hi,

      Der Validator schreibt:

      "Error  Line 22, Column 175: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag"

      Ja da hat der Validator auch recht und die Fehlermeldung sollte eigentlich auch nicht all zu schwer zu verstehen sein oder?

      Ich weiss was den Validator nicht gefällt, es steht ja auch da, das ist auch nicht mein Problem.

      aber das habe ich in php an dieser stelle nur stehen:
      PHP:
      echo " <form id=\"formlogin\" method=\"post\" action=\"".$http.$server.$path."\">\n";

      Falls du deine Seite über URL überprüft hast kann der Validator auch nichts mit PHP anfangen.
      Wenn dort steht "Error Line 22" dann heißt das, dass in der 22 Zeile des Queltextes welcher der Browser ausgibt der Fehler liegt, und nicht in der 22. Zeile deines Scriptes.

      Das ist mir auch klar dass Line 22 sich auf dem Quelltext im Browser bezieht.
      Wenn es mir nicht klar wäre, hätte ich hier eine andere Zeile gepostet. Ist logisch oder?

      Aber um zu deinen Problem zurück zu kommen, ein <input> muss in einem der oben genannten Elementen stehen. Pack das ganze in ein <fieldset> und dein Problem ist gelöst.

      Das sagt die o.g. Fehlermeldung ja von Validator aus, nur ich kann es nicht in ein <fieldset> setzen, weil ich den Anhang "<input type="hidden" name="PHPSESSID" value="f6e88704e0a766d59d46f1cd26f53282" />" nicht geschrieben habe, es wurde einfach von PHP automatisch hinzugeführt.

      Und das nächste mal fütter doch einfach mal Google mit deiner Fehlermeldung, und du wirst genug Antworten finden.

      Den Satz hättest du dir sparen können.

      1. Hi,

        Und das nächste mal fütter doch einfach mal Google mit deiner Fehlermeldung, und du wirst genug Antworten finden.
        Den Satz hättest du dir sparen können.

        Nein - weil du dir hier jetzt wieder von uns erklären lässt, was anderweitig schon längst aufgeschrieben ist - und zwar so, dass es jemand, der mit PHP arbeiten will, auch verstehen können sollte.

        Aber um zu deinen Problem zurück zu kommen, ein <input> muss in einem der oben genannten Elementen stehen. Pack das ganze in ein <fieldset> und dein Problem ist gelöst.
        Das sagt die o.g. Fehlermeldung ja von Validator aus, nur ich kann es nicht in ein <fieldset> setzen, weil ich den Anhang "<input type="hidden" name="PHPSESSID" value="f6e88704e0a766d59d46f1cd26f53282" />" nicht geschrieben habe, es wurde einfach von PHP automatisch hinzugeführt.

        Eben - und *wo* es hinzugefügt wird, ob direkt im Formular, oder in einem ggf. von dir eingesetzen Fieldset, dass kannst du PHP ja vorgeben.
        Und wie das genau geht, dass hat Der Martin dir inzwischen auch noch mal explizit verlinkt.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Hallo,

    Der Validator schreibt:
    "Error  Line 22, Column 175: document type does not allow element "input" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins", "del" start-tag"
    HTML:
    22. <form id="formlogin" method="post" action="https://..."><input type="hidden" name="PHPSESSID" value="f6e88704e0a766d59d46f1cd26f53282" />

    ja, klarer Fall: In (X)HTML Strict ist Inline-Inhalt (inline-Elemente oder Textknoten) als direktes Kind von body oder form nicht erlaubt. Irgendein umgebendes Blockelement ist vorgeschrieben.
    Beim Formular bietet sich fieldset an.

    aber das habe ich in php an dieser stelle nur stehen:

    echo " <form id=\"formlogin\" method=\"post\" action=\"".$http.$server.$path."\">\n";

    Ja, PHP baut deinen Quellcode selbständig um, um auch ja die Session ID weiterzugeben. Dass dadurch invalides HTML entstehen kann, ist schade; durch eine Einstellung in der php.ini kann man dieses Verhalten aber steuern.

    So long,
     Martin

    --
    Wenn du beim Kochen etwas heißes Wasser übrig hast, friere es ein.
    Heißes Wasser kann man immer gebrauchen.
    1. Ja, PHP baut deinen Quellcode selbständig um, um auch ja die Session ID weiterzugeben. Dass dadurch invalides HTML entstehen kann, ist schade; durch eine Einstellung in der php.ini kann man dieses Verhalten aber steuern.

      So long,
      Martin

      Danke für den Hinweis.