Session_id wird per POST nicht übergeben..???

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

  • Session_id wird per POST nicht übergeben..???

    Hallo,
    ich hab schon etliche Foren durchsucht und habe auch schon viel probiert bin aber noch zu keiner Lösung gekommen....

    Ich möchte das die SID per POST übergeben wird, wenn kein Cookie geschrieben wird.
    Wenn Cookies an sind funktioniert alles wunderbar, wenn ich sie ausschalte spinnt das Post-Formular rum....

    PHP-Code:
    function showLogin()
    {
        echo 
    "<a href=\"index.php?".SID."\">".SID."</a>";
        echo 
    "<form action=\"index.php?".SID."\" method=\"POST\">";
        echo 
    "<table border=\"0\">"
        
    ."<tr>"
            
    ."<td>Benutzer:</td>"
            
    ."<td><input type=\"text\" name=\"username\"></td>"
        
    ."</tr><tr>"
            
    ."<td>Passwort:</td>"
            
    ."<td><input type=\"password\" name=\"password\"></td>"
        
    ."</tr><tr>"
            
    ."<td colspan=\"2\"><input type=\"submit\" value=\"Anmelden\"></td>"
        
    ."</tr>"
        
    ."</table>";
        echo 
    "<input type=\"hidden\" name=\"op\" value=\"login\">";
        echo 
    "<input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\">";
        echo 
    "</form>";

    Das erste echo hab ich nur zur Überprüfung, jedes mal wenn ich auf den Anmelde Button klicke ändert sich die Session_ID. Wenn ich allerdings den Link (erster echo-Befehl) benutze, dann funktioniert es einwandfrei, die SID wird per GET übergeben.

    PHP-Code:
    echo "<form action=\"index.php?".session_name()."=".session_id"\" method=post>"
    funktioniert auch nicht.
    Unten im hidden-input hab ich auch schon alle Möglichkeiten durchprobiert....
    Ich hab die session.use_trans_sid an- und ausgeschaltet, hat auch nix gebracht....

    Ich dreh hier bald durch....Ich hoffe es ist nur ne Kleinigkeit und irgendwer kann mir schnell helfen....
    Zuletzt geändert von Heineken2000; 23.08.2004, 13:33.

  • #2
    Re: Session_id wird per POST nicht übergeben..???

    Original geschrieben von Heineken2000
    Ich möchte das die SID per GET übergeben wird
    nein, möchtest du nicht.

    dein formular nutzt POST als methode, und POST und GET zu vermischen, sollte man vermeiden.

    also übermittle die SID in einem hidden field per POST.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: Session_id wird per POST nicht übergeben..???

      Original geschrieben von wahsaga
      nein, möchtest du nicht.

      dein formular nutzt POST als methode, und POST und GET zu vermischen, sollte man vermeiden.

      also übermittle die SID in einem hidden field per POST.
      Du hast recht. Natürlich möchte ich die SID per POST übergeben. Aber das funktioniert nicht. Wenn ich die SID per GET übergebe bleibt die Session_ID erhalten, bei POST klappt das nicht....

      Kommentar


      • #4
        zeig mal ein formular (den html-quelltext)
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Oben steht doch das Formular...
          Ist halt in php eingebettet....

          Kommentar


          • #6
            Das Formular ruft ja die index.php neu auf.
            Muss der Indx.php dann beim neuen Aufruf vielleicht beim session_start(); irgendwie die SID noch übergeben????

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              den html-quelltext
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Ahhh, jetzt verstehe ich wodrauf du hinauswillst.....
                Er übergibt die SID gar nicht....

                PHP-Code:
                <form action="index.php?PHPSESSID=" method="POST">
                <
                table border="0">
                <
                tr><td>Benutzer:</td><td><input type="text" name="username"></td>
                </
                tr><tr><td>Passwort:</td><td><input type="password" name="password"></td>
                </
                tr><tr><td colspan="2"><input type="submit" value="Anmelden"></td>
                </
                tr></table><input type="hidden" name="op" value="login">
                <
                input type="hidden" name="PHPSESSID" value="b3c6612c1dbb1e3d6decac2562a430ac">
                </
                form
                Hmmm.....

                PHP-Code:
                function login($username$password)
                {
                    
                $found mysql_fetch_array(runquery("SELECT uid, username, pass, admin FROM users
                                WHERE username='
                $username' LIMIT 1"));
                    if(
                $found[pass] == md5($password))
                    {
                        
                $_SESSION[user] = $username;
                        
                $_SESSION[uid] = $found[uid];
                        
                $_SESSION[pass] = $found[pass];
                        
                $_SESSION[time] = time();
                        if(
                $found[admin])
                            
                $_SESSION[admin] = true;
                        
                reNewPage();
                    }

                Muss ich in der Auswertungsfunktion jetzt noch die PHPSESSID irgendwie übergeben???
                SO???
                PHP-Code:
                function login($username$passwordPHPSESSID
                Zuletzt geändert von Heineken2000; 23.08.2004, 13:59.

                Kommentar


                • #9
                  und welcher code erzeugt genau das formular?


                  lass doch den GET-parameter einfach weg
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Original geschrieben von mrhappiness
                    und welcher code erzeugt genau das formular?
                    Die Funktion showLogin() von oben.

                    lass doch den GET-parameter einfach weg [/B]
                    Hab ich auch schon probiert klappt auch nicht.

                    Warum übernimmt er die hidden-input Variable nicht...Er dürfte doch gar keine neue SESSID erstellen...

                    Kommentar


                    • #11
                      Original geschrieben von Heineken2000
                      Die Funktion showLogin() von oben.
                      glaube ich dir nicht

                      in SID steht nur der name der session und nicht die id?

                      entweder ist SID leer, oder es stehen sowohl sessionname als auch -id drin (dachte ich zumindest immer)

                      Konstante, die entweder den Namen und die ID der Session in der Form "name=ID" enthält oder eine leere Zeichenkette, falls die Session-ID in einem entsprechenden Cookie gesetzt wurde.
                      sieht aus als hätte ich recht

                      wenn es bei dir tatsächlich anders sein sollte, dann ist dein php kaputt
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        jupp du hast recht.
                        Ich glaube mein Code war etwas outOfSync....

                        Also ich hatte wahrscheinlich
                        PHP-Code:
                        echo "<form action=\"index.php?".session_name()."=".$session."\" method=\"POST\">"
                        drinstehen. Ich hab nämlich mit einer eigens eingeführten Variable rumgefummelt, weil es nicht geklappt hat....


                        Ich hab das Problem jetzt gefunden. Ich hatte in meiner index.php noch ein reNewPage() drinstehen, das die Page neu aufgebaut hat. Dadurch gab es dann immer neue SESSIDs....

                        Danke, das du dich nicht hast aus der Ruhe bringen lassen.....

                        Kommentar


                        • #13
                          Jetzt knallt der mir allerdings immer gleich 2 SESSIDs hin...
                          index.php?PHPSESSID=ID&PHPSESSID=ID

                          ich habe oben nach dem session_start(); ein
                          PHP-Code:
                          ini_set('session.use_trans_sid',0); 
                          stehen,hilft aber nicht. Muss das vielleicht vor das session_start()???

                          Kommentar


                          • #14
                            Nevermind....
                            Vor dem session_start() --> dann klappts ....

                            Kommentar

                            Lädt...
                            X