Sessions ohne Cookies in XHTML 1.1

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sessions ohne Cookies in XHTML 1.1

    Moin!
    Ich hab ein Problem mit folgendem Code:
    PHP-Code:
    <?php

    if( stristr($HTTP_ACCEPT,"application/xhtml+xml")
     || 
    stristr($HTTP_USER_AGENT,"W3C_Validator") )
        
    $mime_type "application/xhtml+xml";
    else
        
    $mime_type "text/html";

    if(!isset(
    $dummy1))
        
    $dummy1 "dummy1";

    if(!isset(
    $dummy2))
        
    $dummy2 "dummy2";

    header ("Content-type: " .$mime_type"; charset=UTF-8");

    session_start();

    print
    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
        "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
      <head>
        <title>Minimal XHTML 1.1 Document</title>
      </head>
      <body>
        <p>This is a minimal <a href="test.php?dummy1=<?php echo dummy1?>&dummy2=<?php echo dummy2?>">XHTML 1.1</a> document. --> ID <?php echo session_id(); ?></p>
      </body>
    </html>
    Am Anfang gucke ich, ob der Client vernünftig mit XHTML umgehen kann (also nicht IE) und sende den entsprechenden MIME-type.

    Dann wirds interessant:
    ich habe PHP 4.3.4 und meine php.ini wie folgt:
    [FONT=courier new]session.use_cookies = 1[/FONT]
    [FONT=courier new]register_globals = On[/FONT]
    [FONT=courier new]session.use_trans_sid = 1[/FONT]
    und meine Browser akzeptiert keine Cookies, sprich, die SID wird an die URL angehängt.

    Hab ich gedacht.

    Aber da ich noch zwei dummy-Variablen mit der URL übergebe, scheint das nicht richtig zu funzen, jedenfalls meckern mozilla und opera an der xml-struktur rum. es scheint an den "&" in der URL zu liegen...
    Ich hab statt " & " natürlich auch schon " & a m p ; " und " & # 3 8 ; " ausprobiert, ohne erfolgreiches Ergebnis.

    Ich kann leider auf die beiden Variablen nicht verzichten, die sind wichtig für den Seitenaufbau, aber so wird das irgendwie nix.

    Das Problem scheint ein XHTML spezifisches zu sein, wenn ich das ganze statt als "application/xhtml+xml" als normales "text/html" sende, scheint alles gut zu funktionieren. Vielleicht auch mangelnde Browserunterstützung ? Aber in Opera, Netscape und Mozilla gleichzeitig ... ?

    Hat jemand ne Idee, wie ich das hinbasteln könnte dass das
    a) keine Fehlermeldungen wirft und
    b) auch noch valides XHTML 1.1 ist ?

    wenn jemand eine idee hat... ich bin für alles dankbar :-)

    Gruß

    Tiberius

    Ach ja, live und in Farbe gibts das ganze hier.
    Zuletzt geändert von tiberiusvp; 11.05.2004, 02:04.
    Ach sch*****, was weiss denn ich warum das schon wieder nicht geht !

  • #2
    Re: Sessions ohne Cookies in XHTML 1.1

    Original geschrieben von tiberiusvp
    Ach ja, live und in Farbe gibts das ganze hier.
    also da sehe ich jetzt im validator eigentlich nur fehler, die vom & herrühren.

    kannst du die seite auch mal mit &amp;amp; zwischen den parametern zur verfügung stellen?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Sessions ohne Cookies in XHTML 1.1

      Moin!

      Klar kann ich da was online bringen :-)

      Version mit &amp;
      Version mit &amp;amp;
      Version mit &amp;#38;

      Ich benutze zum Testen Opera 7.22, Mozilla 1.6, Mozilla Firefox 0.8 und Netscape 7, Cookies deaktiviert und alle machen Ärger...

      Vielen Dank für die Hilfe!

      Gruß
      Tiberius
      ---
      Nachtrag:
      Ich hab auch schon versucht, bei mir aufm localhost mit "arg_separator.output = "&amp;amp;" '' in der php.ini rumzudoktorn, aber das klappt irgendwie auch nicht. Kann ich diese Einstellung bei meinem Provider beeinflussen ? Per .htaccess oder so ?
      Zuletzt geändert von tiberiusvp; 11.05.2004, 10:34.
      Ach sch*****, was weiss denn ich warum das schon wieder nicht geht !

      Kommentar


      • #4
        Re: Re: Sessions ohne Cookies in XHTML 1.1

        Original geschrieben von tiberiusvp
        Ich hab auch schon versucht, bei mir aufm localhost mit "arg_separator.output = "&amp;amp;" '' in der php.ini rumzudoktorn, aber das klappt irgendwie auch nicht.
        "klappt irgendwie nicht" heisst?

        Kann ich diese Einstellung bei meinem Provider beeinflussen ? Per .htaccess oder so ?
        ja, sollte eigentlich möglich sein, mit folgender zeile in einer .htaccess:

        php_value arg_separator.output "&amp;amp;"

        (evtl. ohne die anführungszeichen, bin mir dabei nicht ganz sicher.)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          sorry für den ungenauen Wortlaut.

          "klappt nicht" heisst:
          Wenn ich die Standardeinstellung der php.ini von "&amp;" auf "&amp;amp;" ändere, ergibt sich keine Änderung im Verhalten der Browser, was meine Hoffnung war. Ich hatte in einem anderen Forum gelesen, dass man diese Einstellung ändern solle, um Kompatibilität zu XHTML zu bekommen.

          Wie dem auch sei, mit"&amp;" oder "&amp;amp;" ist es mir nicht gelungen, die Seite bei abgeschalteten Cookies dazu zu bekommen, sauber validiert zu werden.
          Ach sch*****, was weiss denn ich warum das schon wieder nicht geht !

          Kommentar


          • #6
            mach mal die änderung in der .htaccess rückgängig und schreibe dies am anfang deines scriptes rein.

            PHP-Code:
            ini_set('arg_separator.output''&amp;amp;'); 
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Re: Sessions ohne Cookies in XHTML 1.1

              Hey, danke, das scheint zu funktionieren!

              Guckst du hier

              Ich danke euch beiden, wenn ich noch ein Problem habe, wende ich mich vertrauensvoll wieder ans Forum, hier sitzen kompetente Leute :-)

              Gruß

              Tiberius
              Ach sch*****, was weiss denn ich warum das schon wieder nicht geht !

              Kommentar


              • #8
                Original geschrieben von tiberiusvp

                Wenn ich die Standardeinstellung der php.ini von "&amp;" auf "&amp;amp;" ändere, ergibt sich keine Änderung im Verhalten der Browser, was meine Hoffnung war. Ich hatte in einem anderen Forum gelesen, dass man diese Einstellung ändern solle, um Kompatibilität zu XHTML zu bekommen.
                was wundert mich aber. ich habe grad getestet und es funz.
                also in php.ini: arg_separator.output = "& amp;" gesetzt und Code entsprechend geändert (weil der sowas von unsauber ist ):
                PHP-Code:
                <?php
                if( stristr($_SERVER['HTTP_ACCEPT'],"application/xhtml+xml")
                 || 
                stristr($_SERVER['HTTP_USER_AGENT'],"W3C_Validator") )
                    
                $mime_type "application/xhtml+xml";
                else
                    
                $mime_type "text/html";
                if(!isset(
                $_GET['dummy1']))
                    
                $dummy1 "dummy1";
                if(!isset(
                $_GET['dummy2']))
                    
                $dummy2 "dummy2";
                header ("Content-type: " .$mime_type"; charset=UTF-8");
                session_start();
                print
                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
                ?>
                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
                    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
                <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
                  <head>
                    <title>Minimal XHTML 1.1 Document</title>
                  </head>
                  <body>
                    <p>This is a minimal <a href="test.php?dummy1=<?php echo $dummy1?>
                            dummy1& amp;dummy2=<?php echo $dummy1?>">
                           XHTML 1.1</a> document. --> ID <?php echo session_id(); ?></p>
                  </body>
                </html>
                Ausgabe:

                <?xml version="1.0" encoding="UTF-8"?>
                <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
                "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
                <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
                <head>
                <title>Minimal XHTML 1.1 Document</title>
                </head>
                <body>
                <p>This is a minimal
                <a href="test.php?dummy1=dummy1& amp;dummy2=dummy2& amp;
                SID=1ef844d58697246b92df37a68ccd25f9">XHTML 1.1</a>
                document. --> ID 1ef844d58697246b92df37a68ccd25f9</p>

                </body>
                </html>

                läuft unter IE 6 SP1, Firefox 0.8, Mozilla 1.7b, NS 7.1
                EDIT:
                Hmm. zu spät --- interne Notiz: Teflon nich abnehmen
                Zuletzt geändert von asp2php; 11.05.2004, 11:17.

                Kommentar


                • #9
                  <grins>
                  Ach sch*****, was weiss denn ich warum das schon wieder nicht geht !

                  Kommentar

                  Lädt...
                  X