Ankündigung

Einklappen
Keine Ankündigung bisher.

$_POST oder $_GET -Variablen zerstören?

Einklappen

Neue Werbung 2019

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

  • $_POST oder $_GET -Variablen zerstören?

    Hallo Forum!
    Gibt es eine Möglichkeit $_GET oder $_POST -Variablen zu zerstören?
    ich habs mal mit unset() probiert hat aber nicht geklappt.

    Danke für Hilfe

  • #2
    Ne also die "super_globals" kannst du nicht "löschen" ... warum müsstest du es denn machen?

    Kommentar


    • #3
      klar geht das. Warum auch nicht?

      probiere folgendes Script.

      PHP-Code:
      <?php

      error_reporting
      (E_ALL);

      print_r ($_POST);
      print_r ($_GET);

      unset(
      $_GET);
      unset(
      $_POST);

      print_r ($_POST);
      print_r ($_GET);
      ?>
      Nach dem Unset sind beide undefiniert.
      Stellt sich aber immernoch die Frage nach dem Sinn.

      Kommentar


      • #4
        Ja also ich hab ein Formular bei dem Daten per $_POST übermittelt werden.
        Die übermittelten Daten werden dann in die DB eingetragen. Allderdings hab ich das Problem, dass wenn ich die Seite aktualisiere der DB-Eintrag erneut durchgeführt wird da die $_POST-Daten ja noch existieren.
        PHP-Code:
        <?php
        if(isset($_POST['message'])) {
           
        // DB-Eintrag
        }
        ?>
        Ich würde also gerne die $_POST-Daten nach dem DB-Eintrag löschen so das sie beim aktualisieren der Seite nicht mehr zugänglich sind.

        Kommentar


        • #5
          Wer lesen kann, ist klar im Vorteil

          11.19. Wie verhindere ich mehrfaches Absenden eines Formulars?
          http://www.php-faq.de/q/q-formular-mehrfach.html

          Gruß
          phpfan

          Kommentar


          • #6
            also für das problem wird dir das zerstören der variablen am server nicht helfen, da die post/get parameter afaik am client liegen... die meldung: Die Daten werden erneut an den Server gesendet stammt ja auch vom IE und nicht vom Server.

            ne möglichkeit die dir vielleicht hilft:
            du speicherst die variable die per post übertragen wird in der Session am Server und vergleichst dann vor dem db eintrag die Post Variable mit der Session variablen. wenn die variablen gleich sind, kein eintrag, ansonsten soll eingetragen werden.

            beispiel:
            PHP-Code:
            <?php
            <?PHP if(isset($_POST['message']) && ($_POST['message'] != $_SESSION['message']) {
              
            //DB Eintrag
            $_SESSION['message'] = $_POST['message'];
            }
            ?>
            mfg Floh

            Programmers don't die, they GOSUB without RETURN

            Kommentar


            • #7
              Die übermittelten Daten werden dann in die DB eingetragen. Allderdings hab ich das Problem, dass wenn ich die Seite aktualisiere der DB-Eintrag erneut durchgeführt wird da die $_POST-Daten ja noch existieren.
              sag das doch gleich, das ist ein komplett anderes Problem.

              Du könntest nach erfolgreichem Eintragen in die DB die Seite per Header weiterleiten. Ist die einfachste und sinnvollste Möglichkeit. Optinal wäre es denkbar zu überprüfen ob der Eintrag bereits existiert (nicht 2x das gleiche Eintragen oder kein Eintrag in ganz kurzer Zeitfolge)

              Kommentar

              Lädt...
              X