Variable leer

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

  • Variable leer

    hallo zusammen, bräucht mal eure hilfe.

    habe folgenden Code:

    PHP-Code:
    <form action="user_bearbeiten_ausfuehren.php?
      user=<?PHP echo $_POST['user'];?>" method="post" name="userbearb">
    <table border="1" bordercolor="#FFFFFF">
    <font face="Verdana" size="1">
      <tr>
        <td align="left"><font face="Verdana" size="1">Name:</td></font>
        <td align="left"><font face="Verdana" size="1">

    <?PHP
            
    include "../db.php";
            
    $userauswahl "select Username, Name,Vorname from benutzer";
            
    $query mysql_db_query("projekt"$userauswahl);
            
    $num mysql_num_rows($query);
            if(
    $num == 0)
            {
               echo 
    "<select name=\"user\" size=\"1\">
                     <option>kein User vorhanden</option>
                     </select>"
    ;
            }
            else
            {
    ?>
            <select name="user" size="1" onChange="submit()">
            <option>User...</option>
    <?PHP
            
    for($i=0$i $num$i++)
            {
             
    $username mysql_result($query,$i,"Username");
             
    $name mysql_result($query,$i,"Name");
             
    $vorname mysql_result($query,$i,"Vorname");
             echo 
    "<option value=\"$username\">";
             echo 
    $name." ".$vorname;
             echo 
    "</option>";
            }
            echo 
    "</select>";
            }

    ?>
    </td></font>
    </tr>
    </table>
    </form>
    hab nun folgendes problem in der zeile:

    PHP-Code:
    <form action="user_bearbeiten_ausfuehren.php?user=
       <?PHP echo $_POST['user'];?>" method="post" name="userbearb">
    ich würde gerne der seite "user_bearbeiten_ausfuehren.php" den user
    mit übergeben. nur ist zu beginn wenn ich diese seite starte ist
    die post variable ja noch leer.

    meine frage wäre nun wie schaffe ich es dass beim aufruf der seite
    "user_bearbeiten_ausfuehren.php"
    im browserfenster z.b. http://www.xyz.de/user_bearbeiten_au....php?user=sepp
    drin steht so dass ich auf der nächsten seite per $_GET['user']
    mir den user auslesen kann.

    Danke im voraus für eure Hilfe.
    MfG
    shit happens

  • #2
    Re: Variable leer

    warum fragst du nicht ab, ob der wert in $_POST['user'] drin steht, oder in $_GET['user']?
    isset() und empty() helfen dir dabei.

    alternativ könntest du natürlich auch $_REQUEST['user'] verwenden.


    btw: die methoden GET und POST sollte man nicht unbedingt vermischen. also übergib den user vom formular ans folgescript lieber per input-feld, ggf. hidden.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      danke @wahsaga.

      das problem konnte ich jetzt anders lösen,
      hab ja einfach nur das
      PHP-Code:
      method="post" 
      in

      PHP-Code:
      method="get" 
      umschreiben müssen. und somit hatte ich ja dann
      in der adresszeile den stehen "http://www.xyz.de/user_bearbeiten_ausfuehren.php?user=sepp"
      und jetzt kann ich ja auf der nächsten seite den User per $_GET abrufen.

      trotzdem danke für deine hilfe.

      eine frage hätte ich aber noch, warum sollte man POST und GET nicht unbedingt miteinander vermischen?
      $_REQUEST hat mir jetzt ehrlich gesagt auch gar nix gesagt gehabt aber
      dafür werd ich ja dann die Suche benutzen können hier im Forum

      Danke,
      MfG
      shit happens

      Kommentar


      • #4
        hab ja einfach nur das method="post" in method="get" umschreiben müssen. und somit hatte ich ja dann in der adresszeile den stehen "http://www.xyz.de/user_bearbeiten_ausfuehren.php?user=sepp" und jetzt kann ich ja auf der nächsten seite den User per $_GET abrufen.
        Hat den nachteil, dass du alles in der Adresszeile stehen hast. Bei besonders vielen Eingaben wird das zu Problemen führen.

        Kommentar


        • #5
          ach ja, die adresszeile im browser ist glaub ich auf eine bestimmte anzahl von zeichen begrenzt hab ich mal gehört, kann das sein?

          in diesem fall wie ich ihn habe ist es ja "eigentlich" egal, würde ich jetzt mal sagen da ich ja nur 1nen übergabe parameter habe.

          doch du hast schon recht @TobiaZ wenn dann sollte ich es gleich richtig
          machen nur hatte ich sonst keine ahnung wie ich das anstellen sollte
          trotz wahsagas hilfe!
          shit happens

          Kommentar


          • #6
            ach ja, die adresszeile im browser ist glaub ich auf eine bestimmte anzahl von zeichen begrenzt hab ich mal gehört, kann das sein?
            Richtig. Genaue zahl geistert hier irgendwo rum.

            in diesem fall wie ich ihn habe ist es ja "eigentlich" egal, würde ich jetzt mal sagen da ich ja nur 1nen übergabe parameter habe.
            Wenn du nur einen Parameter hast, wie kommt es dann, dass wahsaga dir empfohlen hat, Post und Get nicht zu mischen?

            Kommentar


            • #7
              ich weiß es ehrlich gesagt auch nicht warum mir
              das wahsaga hier in meinen beispiel empfohlen hat.

              ich hatte ja das beispiel gebracht dass ich mir nur
              den "user" raus filtern wollte.

              mehr wollte ich auch nicht, kann auch sein dass ich
              mich etwas falsch ausgedrückt habe.

              wenn ja dann tuts mir leid und ich versuchs in
              zukunft wohl besser zu beschreiben.

              schönen abend noch.
              shit happens

              Kommentar


              • #8
                Original geschrieben von Magic11
                ich weiß es ehrlich gesagt auch nicht warum mir
                das wahsaga hier in meinen beispiel empfohlen hat.
                aber ich kann dir das sagen ....

                nehmen wir mal an, dass nach dem aufruf deiner seite dies im html-quellcode zu sehen ist ...

                Code:
                <form action="user_bearbeiten_ausfuehren.php?user=sepp" method="post" name="userbearb">
                
                ...
                
                        <select name="user" size="1" onChange="submit()">
                        <option>User...</option>
                	</select>
                
                ...
                
                </form>
                so wird 'user' als GET (das im url) und 'user' als POST (das aus dem select) übergeben.

                wenn du nun method=get verwendest, überscheibst du das user im url durch das user im select. gleiches gilt, wenn du $_REQUEST verwenden würdest.

                trennst du sauber GET und POST, hast du in der zielseite $_GET['user'] und $_POST['user'] vorhanden.

                und mit dem nicht-mischen meint er, dass man entweder alle werte via GET oder POST übergeben sollte. aber nach möglichkeit niemals beide varianten gleichzeitig, wobei das doppelte user (GET/POST) aus meiner sicht auch sinnfrei ist.
                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


                • #9
                  Original geschrieben von Magic11
                  ich weiß es ehrlich gesagt auch nicht warum mir
                  das wahsaga hier in meinen beispiel empfohlen hat.
                  na weil du doch wohl offenbar mit dem formular im zweiten schritt auch daten aus den selects etc. verschicken willst, und dafür POST als methode gewählt hast - und den user aber weiterhin per GET in der formular-action zu übergeben scheinst.

                  dass man das nicht mischen sollte, ist zum einen eigentlich mehr ein konzeptioneller gedanke - aber es kann u.U. auch probleme machen, habe ich selbst auch schon mal erlebt.
                  ein request an einen webserver stellt man idR. über GET oder POST. das sind nun mal zwei verschiedene request-methoden, und dass man sie vermengt, ist im HTTProtokoll m.W. nicht vorgesehen. also hat man damit einfach einen undefinierten zustand, und muss sich darauf verlassen, dass so wohl client als auch server das wie gewünscht interpretieren.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    guten morgen.

                    ich wollte mal danke für eure hilfe und erklärungen sagen.
                    werd versuchen mich daran zu halten.

                    was ich auch noch sagen wollte, ich habe die "form"
                    so wie hier unten angegeben abegeändert,
                    das hatte ich vergessen zu posten, sorry @Abraxax

                    PHP-Code:
                    <form action="user_bearbeiten_ausfuehren.php" method="get" 
                    name="userbearb"
                    nun steht das ganze, wenn ich die form ausgeführt hab, so in der adresszeile wie ich es brauche z.b.
                    http://www.xyz.de/user_bearbeiten_au....php?user=sepp

                    und somit kann ich ja jetzt im script in der "user_bearbeiten_ausfuehren.php" mittels $_GET['user'] den user
                    abfragen und dementsprechend mir die benötigten infos ausgeben lassen.

                    wenn ich das jetzt richtig verstanden habe dann vermische ich ja jetzt
                    nicht mehr GET und POST oder?
                    shit happens

                    Kommentar


                    • #11
                      Original geschrieben von Magic11
                      wenn ich das jetzt richtig verstanden habe dann vermische ich ja jetzt
                      nicht mehr GET und POST oder?
                      Ja, aber die URL hat eine Längebeschränkung. Durch method=get in form-Tag werden alle form-Elemente per Get übertragen, d.h. u.U. könnte was verloren gehen, also überlege es dir gut; es ist nicht üblich, dass man Formulardaten per get überträgt.

                      Kommentar


                      • #12
                        Ja, aber die URL hat eine Längebeschränkung
                        ja dessen bin ich mir bewusst, ich habe jetzt nur in diesem beispiel
                        diese technik gewählt da ich auf alle fälle nur 1en einzigen
                        parameter in dieser form übergeben werde.
                        in anderen scripten übergabe ich alle formdaten immer mittels
                        POST.

                        Gibt es eigentlich noch einen weiteren Grunder ausser der
                        Längenbeschränkung (was aber eh Grund genug ist) warum man
                        Formdaten nicht mittels GET übergeben sollte?
                        shit happens

                        Kommentar


                        • #13
                          Original geschrieben von Magic11
                          Gibt es eigentlich noch einen weiteren Grunder ausser der
                          Längenbeschränkung (was aber eh Grund genug ist) warum man
                          Formdaten nicht mittels GET übergeben sollte?
                          z.B. die Tatsache, dass der Benutzer die Daten einfach verändern kann ...
                          h.a.n.d.
                          Schmalle

                          http://impressed.by
                          http://blog.schmalenberger.it



                          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                          ... nur ohne :-)

                          Kommentar


                          • #14
                            das verändern ist aber auch bei POST-daten möglich!
                            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


                            • #15
                              Original geschrieben von Abraxax
                              das verändern ist aber auch bei POST-daten möglich!
                              Da hast Du natürlich Recht, aber wer weiss das schon. id.R. nur "Profis" und Hacker
                              h.a.n.d.
                              Schmalle

                              http://impressed.by
                              http://blog.schmalenberger.it



                              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                              ... nur ohne :-)

                              Kommentar

                              Lädt...
                              X