+ Antworten
Ergebnis 1 bis 9 von 9

Thema: Variablenübergabe in PHP

  1. #1
    TP-Senior T:-)M macht alles soweit korrekt Avatar von T:-)M
    Registriert seit
    Jun 2001
    Ort
    Deutschland, Berlin
    Beiträge
    284

    Question Variablenübergabe in PHP

    Hallo,

    ich möchte den usernamen übergeben, den der Anwender in ein Formularfeld eintragen kann.
    ......also im HTML Part im Formular:
    <input type="text" name="username">
    ........

    Jetzt habe ich verschiedene Methoden beschrieben gesehen, wie man auf diese Variable zugreifen kann:
    In der PHP Datei
    1. echo username;
    2. echo $HTTP_POST_VARS["username"];
    3. echo $_post["username"];

    Welche Methode ist die richtige - oder sind alle drei korrekt?
    Und warum finde ich die Variablen danach nicht in der phpinfo()?

    Vielen Dank für Euren Rat.

    Gruß

    T:-)M
    --------------------------------------
    Nur ein toter Fisch schwimmt
    mit dem Strom .....................

    -> -> -> -> -> -> ->
    -> -> -> ->
    -> <- -> -> ->
    -> -> ->
    -> -> -> -> -> ->


  2. #2
    TP-Senior Powerposting macht alles soweit korrekt
    Registriert seit
    Jun 2002
    Ort
    Wilhelmshaven
    Beiträge
    189
    Hi,
    wenn Du im Formular < method=post > einstellst, stehen Dir die Variablen so zur Verfügung.
    Als Bsp:
    Datei: eingabe.php
    <Form name=form1 method=post>
    <input type=text name=user>
    .....
    </form>

    Datei: ausgabe.php
    <? echo $user;?>

    So einfach geht das ganze. Du ganz natürlich auch PHP_SELF verwenden, dann stehen Dir die Daten auch zur Verfügung.

    Gruß Andy

  3. #3
    TP-Senior T:-)M macht alles soweit korrekt Avatar von T:-)M
    Registriert seit
    Jun 2001
    Ort
    Deutschland, Berlin
    Beiträge
    284
    Hallo Andy,

    danke für dein schnelles posting.
    Ja so habe ich es auch mit post in html ....

    und in php:

    1. echo username;

    Es ist nur so, dass ich die anderen beiden Methoden auch gesehen habe:

    2. echo $HTTP_POST_VARS["username"];
    3. echo $_post["username"];

    .. sind die auch o.k. oder veraltet .. oder ... oder?

    Und was mich auch noch wundert ist, dass ich diese variable mit Wert nicht in beim aufruf der funktion phpinfo finden kann - die müsste da doch danach drinnen sein oder?

    Gruß

    T:-)M
    --------------------------------------
    Nur ein toter Fisch schwimmt
    mit dem Strom .....................

    -> -> -> -> -> -> ->
    -> -> -> ->
    -> <- -> -> ->
    -> -> ->
    -> -> -> -> -> ->


  4. #4
    TP-Greis Lars bringt sich richtig ein
    Registriert seit
    Jun 2001
    Beiträge
    5.468
    Original geschrieben von T:-)M

    echo $_post["username"];
    Sie sind alles andere als veraltet, gemäß der aktuellen Empfehlungen sollten diese sogar berwemdet werden. Steht die berühmte Variable "register_globals" in der php.ini auf "off", musst Du sie sogar benutzen,.

  5. #5
    TP-Senior T:-)M macht alles soweit korrekt Avatar von T:-)M
    Registriert seit
    Jun 2001
    Ort
    Deutschland, Berlin
    Beiträge
    284
    wow das geht ja fix hier bei euch :-)

    ... also ich habe mal ein wenig herumgewerkelt .. folgendes ist bis jetzt herausgekommen...:

    Es gibt mehrere Möglichkeiten, die im Prinzip alle richtig sind:

    1. Möglichkeit
    Ansprechen der Variablen über den Variablennamen:
    echo $username;

    2. Möglichkeit
    Ansprechen über ein vordefiniertes assoziatives Array in das automatisch alle Variablen, die per post übergeben worden sind, gespeichert werden:
    echo $HTTP_POST_VARS["username"];
    Der Vorteil könnte hier sein, dass man bei größeren Formularen alle Arrayelemente mit einer for-each Schleife ausgeben lassen kann.

    3. Möglichkeit
    $_post["username"];
    Geht glaube ich nur bei neueren PHP-Versionen.
    Ansonsten die selbe wie Möglichkeit 2.


    ....... hmmmmm....

    ist das o.k. so?


    Gruß

    T:-)M
    --------------------------------------
    Nur ein toter Fisch schwimmt
    mit dem Strom .....................

    -> -> -> -> -> -> ->
    -> -> -> ->
    -> <- -> -> ->
    -> -> ->
    -> -> -> -> -> ->


  6. #6
    TP-Senior Powerposting macht alles soweit korrekt
    Registriert seit
    Jun 2002
    Ort
    Wilhelmshaven
    Beiträge
    189
    Wie Lars es schon schrieb, Sie sind nicht veraltet. Jedoch ist der Einsatz immer von der Situation abhänging.
    Für die einfache Übergabe von einfachen Formularen langt die einfache Methode. Wenn Du mit Datei-Upload arbeitest, sieht es schon anders aus, da kommt es zum Tragen.

    Sofern Du einen WebSpace bei Hosteurope oder Schlund... hast, sind die die Register_globals nicht auf < OFF > gesetzt, sonst stimmts was Lars geschrieben hat. Ich habe mehrere Provider im Einsatz, sogar einen kleinen in der Schweiz, der eigens einen UnixServer eingerichtet hat, weil er sonst nur WinServer verwendet, sind die < Register_globals > nicht auf < OFF > gewesen.

    Zu guter letzt musst Du entscheiden, was Du einsetzen möchtest.

    Gruß Andy

  7. #7
    TP-Specialist mike bringt sich richtig ein Avatar von mike
    Registriert seit
    Jan 2002
    Ort
    TP/Dynamik
    Beiträge
    2.876
    $_POST nicht $_post. dann funktioniert es auch mit der Superglobal, die ab 4.2 dabei ist.

    einfache Variablenübergabe würde ich nicht mehr empfehlen, da diese methode sehr unsicher ist. Darum haben sie auch die Superglobals gebaut.
    Und durch konsequentes verwenden dieser Variablen kann man auch einem Mistkübel wie PHP ein bissl mehr Übersichtlichkeit im Script beibringen

    Weiters hast du die Möglichkeit zwischen Post und Get Werten zu unterscheiden.

    Nachteil: willst dein script in einer ältern Umgebung einsetzen funktinoiert es nicht.

    $_POST und $HTTP_POST_VARS und Konsorten sind sich bis auf ein paar Kleinigkeiten wie Variablen Scope und Laufzeitverhalten relativ ähnlich.
    Gehelft? Hier kannst du dich bedanken.

    mike

  8. #8
    TP-Junior Flashbiter macht alles soweit korrekt
    Registriert seit
    Apr 2003
    Beiträge
    17
    Also, $HTTP_POST_VARS und ähnliche Arrays sind eigentlich schon veraltet und wurden durch die Superglobals $_POST, $_GET, etc. ersetzt.

    Wenn du auf externe Variablen unabhängig davon ob sie per GET oder POST übermittelt worden zugreifen willst kannst du übrigens auch $_REQUEST verwenden, da sind dann alle POST,GET und COOKIE-Variablen drin. Das entspricht dann der register_globals-Variante, nur dass die Variablen eben in dem Array sind.

  9. #9
    TP-Senior T:-)M macht alles soweit korrekt Avatar von T:-)M
    Registriert seit
    Jun 2001
    Ort
    Deutschland, Berlin
    Beiträge
    284
    ... vielen Dank Euch allen :-)
    .... ich glaub jetzt ist alles klar...


    Gruß

    T:-)m
    --------------------------------------
    Nur ein toter Fisch schwimmt
    mit dem Strom .....................

    -> -> -> -> -> -> ->
    -> -> -> ->
    -> <- -> -> ->
    -> -> ->
    -> -> -> -> -> ->


+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51