kostenloser Webspace werbefrei: lima-city


Leere Variablen nicht an Mysql übergeben!

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    d***l

    Ich hab ein Formular, in dem es ein Textfeld gibt und auf dem Buttonklick wird dann das hineingeschriebene in eine Mysql-Tabelle gespeichert. Wenn aber die Website geöffnet oder aktualisiert wird, dann werden leere Variabeln übergeben, das will ich unterdrücken. wie geht das?

    So jedenfalls nicht:

    if $name = ''
    {}
    else
    {}
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo d-i-l,

    sende den Button einfach mit und mache dann eine Abfrage, ob er gedrückt wurde:

    <form method="post">
    <input type="text" name="eingabefeld">
    <input type="submit" name="button" value="Abschicken">
    </form>
    
    <?
    if($_POST['button']){
       //in die DB speichern
    }
    ?>


    Alternativ kannst du auch ein verstecktes Feld in dein Formular bauen und dieses dann auf ähnliche Weise abfragen... aber so müsste es auch gehen..

    (Ich habe den Code nicht getestet, dürfte allerdings funktionieren...)

    gruß
    ferdinand24
  4. e**6


    Hallo d-i-l,

    sende den Button einfach mit und mache dann eine Abfrage, ob er gedrückt wurde:

    <form method="post">
    <input type="text" name="eingabefeld">
    <input type="submit" name="button" value="Abschicken">
    </form>
    
    <?
    if($_POST['button']){
       //in die DB speichern
    }
    ?>


    Alternativ kannst du auch ein verstecktes Feld in dein Formular bauen und dieses dann auf ähnliche Weise abfragen... aber so müsste es auch gehen..

    (Ich habe den Code nicht getestet, dürfte allerdings funktionieren...)

    gruß
    ferdinand24



    ist es den nicht so richtiger (;-)
    if(isset($_POST['button'])){
    //in die DB speichern
    }

    oder auch
    if (!empty($name)){}


    Beitrag geaendert: 23.3.2007 22:24:25 von ef06

  5. ist es den nicht so richtiger (;-)
    if(isset($_POST['button'])){
    //in die DB speichern
    }

    oder auch
    if (!empty($name)){}


    Beitrag geaendert: 23.3.2007 22:24:25 von ef06


    Es ist weder "richtiger" noch "falscher" (kann man richtig und falsch komparieren?)...

    Es ist lediglich eine andere Möglichkeit.

    if($_POST['button']) drückt aus: Wenn $_POST['button'] nicht "false" ist, dann....

    if(isset($_POST['button'])) drückt aus: Wenn $_POST['button'] gegeben ist, egal mit welchem Wert, dann....

    Es ist also in Prinzip das Gleiche... wenn es jedoch auf den Wert "false" ankommt, ist die erste Möglichkeit zu empfehlen.



    Natürlich kann man auch fragen, ob das Formular ausgefüllt wurde, das wäre in diesem falle sogar praktischer, um Leerabsendungen zu vermeiden...

    gruß
    ferdinand24

    Beitrag geaendert: 23.3.2007 23:00:15 von ferdinand24
  6. t****u

    Ich empfehle Folgendes:

    <form method="post">
    <input type="text" name="eingabefeld" />
    <input type="submit" value="Abschicken" />
    </form>
    
    <?php
    
    if($_POST['eingabefeld']){
    
      # ...
    
    }
    ?>


    Es wird sichergestellt, dass keine Eintragung erfolgt, wenn das Eingabefeld leer (=null)ist oder das Formular noch nicht abgesendet wurde.
  7. Autor dieses Themas

    d***l

    ok danke
  8. und was macht ihr wenn register_global_on ist ? ;)
  9. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.



    ist es den nicht so richtiger (;-)
    if(isset($_POST['button'])){
    //in die DB speichern
    }

    oder auch
    if (!empty($name)){}


    Beitrag geaendert: 23.3.2007 22:24:25 von ef06


    Es ist weder "richtiger" noch "falscher" (kann man richtig und falsch komparieren?)...

    Es ist lediglich eine andere Möglichkeit.

    if($_POST['button']) drückt aus: Wenn $_POST['button'] nicht "false" ist, dann....

    if(isset($_POST['button'])) drückt aus: Wenn $_POST['button'] gegeben ist, egal mit welchem Wert, dann....

    Es ist also in Prinzip das Gleiche... wenn es jedoch auf den Wert "false" ankommt, ist die erste Möglichkeit zu empfehlen.



    Natürlich kann man auch fragen, ob das Formular ausgefüllt wurde, das wäre in diesem falle sogar praktischer, um Leerabsendungen zu vermeiden...

    gruß
    ferdinand24

    Beitrag geaendert: 23.3.2007 23:00:15 von ferdinand24

    Ich empfinde aber if(isset($_POST['bla'])) als richtiger.
    Sollte man am Anfang des Script error_reporting(E_ALL); stehen haben, und das ist ganz nützlich, so würde deine Variante einen fehler ausspucken, was mit isset() nicht passieren würde.
  10. e**6


    und was macht ihr wenn register_global_on ist ? ;)



    was soll dann sein?

  11. und was macht ihr wenn register_global_on ist ? ;)


    register_globals hat keinen Einfluss auf diese Problematik.
    Mit register_globals=on werden lediglich GET, POST, Cookie, Server und Environment als globale Variablen registriert. $_POST['button'] funktioniert weiterhin.

    Siehe:
    http://de2.php.net/manual/de/ini.core.php#ini.register-globals und
    http://de2.php.net/manual/de/security.globals.php
  12. e**6



    und was macht ihr wenn register_global_on ist ? ;)


    register_globals hat keinen Einfluss auf diese Problematik.
    Mit register_globals=on werden lediglich GET, POST, Cookie, Server und Environment als globale Variablen registriert. $_POST['button'] funktioniert weiterhin.

    Siehe:
    http://de2.php.net/manual/de/ini.core.php#ini.register-globals und
    http://de2.php.net/manual/de/security.globals.php


    Genau nur hatte ich mit meiner Frage erhofft dass sich @benutzernaemelchen mal einen Kopf über seine gestellte Frage mach. Hat er aber scheinbar nicht sonst hätte er das bemerkt (;-)

  13. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!