mÄnnerZ: Variable/Array restlos leeren

Hallo allerseitzz,
ich habe da ein Problem:
Und zwar ist der Befehl für das leeren einer Variable/Array unset(?).
Der klappt aber nicht.

Ich brauch das dafür:
Wenn man bei meinem GB einen Eintrag abschickt, und dann neu läd, dann werden zwei einträge gemacht, ich will aber auch kein Unique über eine Spalte der DB machen.
Also habe ich an das Ende des Scriptes notiert:

unset($_POST);

Da das nicht klappte, habe ich das Probiert:

$_POST = "";

Das klappte auch nicht!!

Also, hat jemand eine Idee, wie ich es lösen könnte?

MfG

  1. Hi,

    Wenn man bei meinem GB einen Eintrag abschickt, und dann neu läd,

    dann wird der Request neu abgeschickt, die selben Parameter werden übergeben, eine neues Scriptinstanz ohne jedweden Zusammenhang zu irgend einer vorherigen Scriptinstanz wird gestartet.

    dann werden zwei einträge gemacht,

    Das ist die logische Folge, wenn Du nicht dafür sorgst, dass der Eintrag nicht erfolgt, wenn ein fremder(!) Vorgang ihn bereits zuvor durchgeführt hat.

    ich will aber auch kein Unique über eine Spalte der DB machen.

    Warum nicht? Wenn ein Kriterium bzw. eine Kombination von Kriterien einzigartig sein soll, dann ist das DB-Layout ohne entsprechenden Unique-Constraint fehlerhaft.

    Also habe ich an das Ende des Scriptes notiert:

    Das interessiert den Browser nicht. Und ein späteres Neustarten des Scripts auch nicht.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      ich will aber auch kein Unique über eine Spalte der DB machen.

      Warum nicht? Wenn ein Kriterium bzw. eine Kombination von Kriterien einzigartig sein soll, dann ist das DB-Layout ohne entsprechenden Unique-Constraint fehlerhaft.

      Weil, wenn man dann neu läd, ein hässlicher Fehler kommt!

      MfG

      1. Wäre der Einsatz einer IP-Sperre gut?

        MfG

        1. Hi,

          Wäre der Einsatz einer IP-Sperre gut?

          nein. Viel Aufwand für ein Ergebnis, das eher in den Bereich der Zufälligkeit einzuordnen ist.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
        2. Setze einfach eine Session-Variable. Beim erstmaligen abschicken wird diese auf false gesetzt und damit das erneute abschicken verhindert.
          Erst beim erneuten aufruf des Formulars wird die Session wieder auf true gesetzt.

      2. Hi,

        ich will aber auch kein Unique über eine Spalte der DB machen.
        Warum nicht? Wenn ein Kriterium bzw. eine Kombination von Kriterien einzigartig sein soll, dann ist das DB-Layout ohne entsprechenden Unique-Constraint fehlerhaft.
        Weil, wenn man dann neu läd, ein hässlicher Fehler kommt!

        aua. Dann fang ihn halt ab! Dazu sind Fehler schließlich da.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. unset($_POST);

    Da das nicht klappte, habe ich das Probiert:

    $_POST = "";

    Das klappte auch nicht!!

    Du kannst keine "Superglobals" löschen.
    Übertrage die Variable in eine andere
    $Post = $_POST;
    und die kannst du dann "leeren"
    ansonsten ignoriere den Inhalt von $_POST

    1. echo $begrüßung;

      unset($_POST);
      Du kannst keine "Superglobals" löschen.

      Hast du diese Aussage mal geprüft? Vermutlich nicht, denn sie ist nicht richtig. Man kann $_POST und Konsorten neue Werte zuweisen und es auch mit unset() in die ewigen Jagdgründe der aktuellen Script-Instanz befördern.

      echo "$verabschiedung $name";

  3. Hi mÄnnerZ!

    Wenn man bei meinem GB einen Eintrag abschickt, und dann neu läd, dann werden zwei einträge gemacht, ich will aber auch kein Unique über eine Spalte der DB machen.
    Also habe ich an das Ende des Scriptes notiert:
    unset($_POST);

    Das hat keine Auswirkung. Der Browser schickt beim Neuladen der Seite die Formulardaten wieder mit. Im Firefox (und sicher auch in anderen Browsern) kommt dabei sogar ein Hinweis.

    Also, hat jemand eine Idee, wie ich es lösen könnte?

    Verhindere einfach, dass innerhalb einer bestimmten Zeit der gleiche Eintrag doppelt vorkommt. Das ist nicht schwer zu implementieren und erfordert nur ein wenig mehr Code.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)