Variablen übergeben ... $_POST ist leer

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

  • Variablen übergeben ... $_POST ist leer

    Hallo zusammen

    ich bin gerade etwas verzweifelt. Ich habe ein einfaches Login-Script, das ich von meiner PHP4-Umgebung auf einen neuen PHP5/MYSQLi-Server übernehmen will

    Vorab:
    Ja, ich arbeite mit $_POST (print_r($_POST); gibt nichts aus.)
    Register_Globals sind off, aber ich habe sie zeitweise angeschaltet - hat nichts genützt.
    Ich benutze mod_rewrite in dieser Form: http://domain.tld/url.html -> http://domain.tld/index.php?p=url
    Die GET-Variable '?p=url' vom mod_rewrite wird problemlos und immer übergeben!

    Hier ein Code-Schnipsel der Datei, die mir Probleme bereitet. Da meine Zeit ziemlich begrenzt ist, muss ich dieses Script direkt übernehmen. Das ganze objektorientiert zu gestalten ist in Planung.. Neue Scripts, die ich mache, sind ausschliesslich PHP5

    PHP-Code:
    <h4>Login</h4>
    <?
    if (session_is_registered('sessionname'))
    {

         //Sie sind registriert, etc ...

     } else {

         $userid = $_POST['userid']; 
         $userep = $_POST['userep'];

         if(empty($userep) and empty($userid))

         {

              //das Formular ... Ich weiss .. doppelte Anführungszeichen habe ich mir inzwischen abgewöhnt..  

              //action = \"$PHP_SELF\" funktioniert übrigens auch nicht

              echo"
      <form method=\"POST\"  enctype=\"text/plain\" action=\"\">
         <input type=\"text\" name=\"userid\" size=\"15\" value=\"BenutzerID\" onFocus=\"clearText(this)\"> <br />
          <input type=\"password\" name=\"userep\" size=\"15\" value=\"Passwort\" onFocus=\"clearText(this)\">
        <p> <input type=\"submit\" size=\"3\" value=\"Einloggen\" name=\"sub\"></p>
      </form>";


         }else {



              //Passwortcheck, Session wird registriert


         }





    }






    ?>
    Mein konkretes Problem ist jetzt: Ich bekomme wenn ich "abschicken" klicke immer nur das Formular vor Augen. Die Variablen werden einfach nicht übergeben

    Bitte helft mir! Danke zum Voraus

  • #2
    hallo,

    du hast bei deinem <form> ja keine action angegeben.

    und wie sieht's mit $_SERVER['PHP_SELF'] aus?

    Kommentar


    • #3
      session_is_registered ist total veraltet...
      http://www.technischedaten.de/pmwiki...essionHandling

      versuche mal method="post" und nicht POST
      Manche Browser scheinen da etwas pingelig zu sein

      und es heist neuerdings $_SERVER['PHP_SELF'] ind nicht mehr $PHP_SELF
      (ist aber auch alles in der Doku nachzulesen...)
      Wir werden alle sterben

      Kommentar


      • #4
        Zeigst du uns deine Rewrite-Einstellungen?
        Bei externen Umleitungen mit Statuscode 302 senden viele Browser statt POST einen GET-Request aufs neue Ziel. Mit 307 gehts besser, aber zeig erstmal her.

        Kommentar


        • #5
          Wow, das ging ja schnell!

          Danke für die vielen Antworten

          @ smarter und combie:
          Danke für den Tipp. habe es mit $_SERVER['PHP_SELF'], bzw. echo"action=". $_SERVER['PHP_SELF'] . "?page=login" versucht. Funktioniert leider auch nicht

          post anstatt POST funktioniert leider auch nicht ...

          Hier der Rewrite-Code:

          Code:
          RewriteEngine on
          
          #Hier wird eine alte Linkstruktur (index.php/de/Kategorie/Sitename) in die neue umgewandelt:
          RewriteRule ^index\.php/de/news/detail/([0-9]*) [url]http://news.domain.tld/artikel_[/url]$1.html [R]
          RewriteRule ^index\.php/de/news/([A-Za-z]+) [url]http://news.domain.tld/[/url]$1.html [R]
          # etc..
          
          # Hier das eigentliche Rewrite:
          RewriteRule ^([A-Za-z]+)\.html$ index.php?page=$1 [L]
          RewriteRule ^artikel_([1-9][0-9]*)\.html$ index.php?k=news&page=detail&id=$1 [L]

          Die Sache mit dem Session-Handling sehe ich mir gleich an. Danke für die Info
          Zuletzt geändert von lipeng; 14.09.2006, 13:22.

          Kommentar


          • #6
            Also wenn ich Formulare nicht an Email Adressen schicke oder Uploads damit mache brauche ich den enctype nie.
            Lass den probeweise mal weg. Bei SelfHTML wird der enctype auch nur im Zusammenhang mit versenden an Email und Uploads verwendet.

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              echo"action=". $_SERVER['PHP_SELF'] . "?page=login"
              Naja... post und get zu mischen, ist selten eine gute Idee
              Wir werden alle sterben

              Kommentar


              • #8
                Naja... post und get zu mischen, ist selten eine gute Idee
                Aber es geht. Hast du noch nie bei einem Form das via POST versendet im action eine SessionID mitübergeben ? Mach gar keine Probleme...
                Das POST/GET bezieht sich ja nur darauf wie die Daten des Formulars (input) verschickt wird.

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Häng mal sicherheitshalber noch ein QSA (Query String Append) an deine RewriteRule:

                  Code:
                  RewriteRule ^([A-Za-z]+)\.html$ index.php?page=$1 [QSA,L]
                  Dan kümmert sich mod_rewrite um das anhängen deiner evtl zusätzlich vorhandenen Parameter. Bezieht sich hier allerdings nur auf die Parameter die im Query String übergeben werden - also get.

                  Damit sollte dann aber wenigsten $_GET['page'] ordentlich ankommen.

                  In Normalfall kann man action übrigens leer lassen, wenn das Formular seine Daten an die selbe Datei schicken soll. Syntaktisch ist es allerdings richtig sie mit PHP-Self zu füllen.

                  Kommentar


                  • #10
                    Hallo Prego

                    Danke für den Tipp. Habe QSA drangehängt.

                    Das Formular funktioniert aber immer noch nicht .. auch nicht mit get .. Vielleicht liegts an der Serverkonfiguration? - ich wüsste allerdings nicht, was ich falsch gemacht hätte .. schliesslich werden bei einigen Formularen die Variablen übergeben

                    // edit

                    meine Geduld ... Mit Get funktioniert die Sache!! .. So kann ich das Probem immerhin temporär umgehen ...

                    Kommentar


                    • #11
                      Aber es geht. Hast du noch nie bei einem
                      Form das via POST versendet im action eine
                      SessionID mitübergeben ?
                      Nöö... ist doch auch völlig unnötig, wenn nicht sogar unsinnig.....

                      Ich verwende meist Sessioncookies und wenn das
                      nicht geht, aber trotzdem unbedingt mit Sessions
                      gearbeitet werden soll und die session.use_trans_sid
                      konfiguration nicht erreichbar ist, dann:
                      http://www.technischedaten.de/pmwiki...ing#ohnecookie
                      Dann pflanzt mir PHP die Sessionid als Hidden-Field ins Formular
                      Zuletzt geändert von combie; 14.09.2006, 14:16.
                      Wir werden alle sterben

                      Kommentar


                      • #12
                        Lasse doch zunächst mal den Rewrite-Krempel weg, und lasse die Formular-Action direkt auf den URL, auf den du letztenlich umschreiben willst, zielen.

                        "Funzt" POST dann?
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Nope, auch schon probiert

                          Kommentar


                          • #14
                            Ich "stupse" mal das Thema hoch.

                            Hat irgendjemand noch einen Vorschlag?

                            Meine ganzen Formulare laufen nun auf GET. Ich habe damit kaum Probleme.

                            Nur werden die ganzen Passwörter unverschlüsselt versendet. Das ist äusserst tragisch!


                            Ich könnte natürlich auf ein XMLHTTP script zurückgreifen und die URLS vor dem Absenden verschlüsseln... POST wäre dann doch einfacher .......

                            Besten Dank und Gruss,
                            lipeng

                            Kommentar


                            • #15
                              Nur werden die ganzen Passwörter unverschlüsselt versendet. Das ist äusserst tragisch!
                              Und nur weil du sie mittels POST übertragen möchtest wären sie dann verschlüsselt ?
                              Die Daten werden genau so wie via GET im Klartext übertragen. Wer sich zwischen dich und Server hängen kann, bekommt diese in jedem Fall.
                              Einzig eine Übertragung via SSL geschützte Verbindung kann ein Ausspähen der Daten einigermassen verhindern.

                              Gruss

                              tobi
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X