dreieck: XHTML und <form> und (PHP-)Sessions

Hallo,
ich habe folgendes Problem:
Ich möchte valides XHTML Strict bekommen.
Also muss ich für Formulare z.B. <form><div><input /></div></form> verwenden.
Kombiniert mit Sessions wird aber automatisch nach dem <form> ein input-Feld mit der Session-ID generiert und das ist nicht valide.
Kann ich das irgendwie beeinflussen?

z.B. <form enctype="multipart/form-data" action="" method="post"><input type="hidden" name="sid" value="2caa0769eec60f734621e2b24ae00a4f" />
<div>...

Danke im Voraus
dreieck

  1. Hallo,

    Ich möchte valides XHTML Strict bekommen.
    Also muss ich für Formulare z.B. <form><div><input /></div></form> verwenden.

    nein, überhaupt nicht. Anstatt des aussagefreien div-Elements kannst du auch jedes andere Blockelement verwenden, z.B. ein p. In Formularen bietet sich häufig auch die Verwendung von fieldset an.

    Kombiniert mit Sessions wird aber automatisch nach dem <form> ein input-Feld mit der Session-ID generiert und das ist nicht valide.

    Wie bitte?!
    Wieso friemelt dein Server in deinem Quellcode rum?
    Gut, es gibt mehrere Möglichkeiten, die Session-ID zu transportieren: In Cookies, als URL-Paramter oder in einem Hidden-Field. Aber wenn du ein Hidden-Field benutzt, wie in drei Teufels Namen soll das "automatisch" eingefügt werden? Nein, das musst du schon selbst tun. Und dann kannst du es auch in ein Block-Element verpacken.

    Schönes Wochenende noch,
     Martin

    --
    Wer im Glashaus sitzt, sollte sich nur im Dunkeln ausziehen.
    1. nein, überhaupt nicht. Anstatt des aussagefreien div-Elements kannst du auch jedes andere Blockelement verwenden, z.B. ein p. In Formularen bietet sich häufig auch die Verwendung von fieldset an.

      Darum ja auch "z.B.". Ich benutze auch gerne <fieldset>, da man das <legend> sehr nett benutzen kann.

      Wieso friemelt dein Server in deinem Quellcode rum?

      Das frage ich mich auch, ich werde das noch mal etwas untersuchen ;D
      (Aber ich bin es definitiv nicht.)

      Schoenes Wochenende ;D
      dreieck

    2. Hi,

      Wieso friemelt dein Server in deinem Quellcode rum?
      Gut, es gibt mehrere Möglichkeiten, die Session-ID zu transportieren: In Cookies, als URL-Paramter oder in einem Hidden-Field. Aber wenn du ein Hidden-Field benutzt, wie in drei Teufels Namen soll das "automatisch" eingefügt werden?

      ich darf kurz aus der PHP-Session-Referenz zitieren:
      ---------------------------------
      url_rewriter.tags  string

      url_rewriter.tags specifies which HTML tags are rewritten to include session id if transparent sid support is enabled. Defaults to a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=

      Note: If you want XHTML conformity, remove the form entry and use the <fieldset> tags around your form fields.
      ----------------------------------
      Also: Ja, PHP fuchtelt bei entsprechenden Einstellungen selbst dran rum.

      MfG
      Rouven

      --
      -------------------
      ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
      1. Hallo,

        ich darf kurz aus der PHP-Session-Referenz zitieren:

        url_rewriter.tags  string
        [...]

        Also: Ja, PHP fuchtelt bei entsprechenden Einstellungen selbst dran rum.

        Danke, das wusste ich noch nicht. Pfui, was für 'ne Schweinerei aber auch. Was ich aus dem Manual nicht so ganz herauslese: Ist das eine Default-Einstellung? Wenn ja, kann man das abstellen? Denn das hätte ja zur Folge, dass die Session ID jedem Link, jedem Formular etc. angehängt wird, egal ob sie an der Stelle nötig ist oder nicht - und das würde ich ganz bestimmt nicht wollen.
        Ich erinnere mich allerdings, dass mir schon des öfteren Websites aufgefallen sind, die auf _jeder_ Unterseite, sogar bis zum Impressum, eine Session-ID als URL-Paramter mitschleppen. Jetzt wird mir klar, warum.

        So long,
         Martin

        --
        Lieber blau machen, als sich schwarz ärgern.
        1. Ist das eine Default-Einstellung? Wenn ja, kann man das abstellen?

          http://php.net/manual/en/ini.php