unset

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

  • unset

    Hallo

    Ich habe ein script mit einem Formular geschrieben, welches sich selbst bei betätigung einen Buttons aufruft.

    "echo '<input type="submit" name="write" value="Eintrag schreiben">';"

    In dem Sript wird mit [COLOR=red]if(isset($write))[/COLOR] geprüft ob der Button betätigt wird.

    Funktioniert soweit so gut.

    Um mit einen Reload zu verhindern, das die Rotine nochmals durch geführt wird, wird die Variable mit [COLOR=red]unset($write);[/COLOR] entfernt.

    Nun müsste aber mit bei einen Reload die Abfrage von "if(isset($write))" nicht beachtet werden, da ja diese Variable nicht mehr exestiert. Es wird aber immer noch der Teil durchlaufen, als ob die Variable immer noch exestiert.

    Was mache ich falsch ?

    Mfg

    Thomas Hugel

  • #2
    hi
    bei einem reload uebermittelst du die daten von dem formular ja nochmal
    also existiert $write auch wieder

    eine reload sperre wuerd ich

    mit direkter weiterleitung auf das formular per header( 'Location: formular.php' ) machen
    so existieren die variablen des formulars nicht mehr

    oder mit einem zeitlich begrenzten ip vergleich
    oder header + ip vergleich zusammen

    mfg
    ...mind your brain
    need a free bulletin board:
    JBB - laufendes Board

    Kommentar


    • #3
      Original geschrieben von oPerILaZ
      hi


      eine reload sperre wuerd ich

      mit direkter weiterleitung auf das formular per header( 'Location: formular.php' ) machen
      so existieren die variablen des formulars nicht mehr

      oder mit einem zeitlich begrenzten ip vergleich
      oder header + ip vergleich zusammen

      mfg
      Hi

      Das mit Location: formular.php sagt mir gar nix, könntest du bitte so so freundlich etwas genaue in Detail zu gehen, wenn es geht.

      MFG
      Thomas Hugel

      Kommentar


      • #4
        sieh unter header im manual nach.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          hi

          ich probiers mal ; )
          header( 'Location: datei')
          kannst du direkt beim ausfuehren des php scripts eine weiterleitung auf eine andere datei machen

          header sendet http informationen

          [vermut]
          dies passiert noch beim interpretieren des scripts
          heisst das davor nichts fuer den client ausgegeben werden darf (echo...)
          der interper fuehrt das gesamte script aus, und macht dann direkt die wetierleitung, also sendet keine daten mehr an den client zurueck

          falls, nach dem du den header sendest, noch php code ist, sollteste du nach dem header das script beenden (exit) da sonst der drunter stehende code noch ausgefuehrt wird
          [/vermut]


          hier ein paar generelle informationen zu header()
          ist dort auch verstaendlicher erklaert ; )
          http://www.php.net/manual/de/function.header.php
          (weiter unten auch ueber header( "Location:...)
          ...mind your brain
          need a free bulletin board:
          JBB - laufendes Board

          Kommentar


          • #6
            Hi

            Danke für die Antworten und den Erklärungsversuch. Mir scheint das mit dem Header zu kompliziert zu seine, ich werde da lieber die Sache Programmmässig abfangen.

            MFG
            Thomas Hugel

            Kommentar


            • #7
              eigentlich ist header die einfachste sache.

              einfach anstatt

              echo "Formular abgeschickt";

              header("location: bestätigung.php");

              machen.

              Kommentar

              Lädt...
              X