Doppelte Beiträge.

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

  • Doppelte Beiträge.

    Hallo Leute.
    Ich habe da eine Frage.
    Ein User fühlt Formular aus und klickt auf Submit, sein Beitrag wird in DB eingefügt und ausgegeben „Danke für Ihre B... bla bla bla Sein Beitrag“.
    So weit ist gut, aber wenn er noch einmal im Browser auf Aktualisieren klickt, wird sein Beitrag noch ein Mal in DB unter nächsten id eingefügt.
    Wie kann ich das vermeiden?
    Wisst Ihr was einfaches?
    Danke.

  • #2
    if (isset()) könnte hierbei helfen denke ich..


    lg, harry d.

    Kommentar


    • #3
      Leite einfach mit header() nach dem Speichern auf eine andere Seite weiter. Diese kann er dann sooft reloaden wie er will.
      [color=red]Geht nicht[/color] ist keine Fehlermeldung

      Kommentar


      • #4
        Leite einfach mit header() nach dem Speichern auf eine andere Seite weiter. Diese kann er dann sooft reloaden wie er will.
        Damit ist das Problem auch nicht 100% gelöst schlieslich kann der User durch den Backbutton wieder auf die Seite mit den POST_VARS

        Ich würde Raten vor dem eintrag zu prüfen ob die Felder, die eingefügt werden schon mit identischen Werten verzeichnet sind

        SELECT count(*) FROM ...

        wenns 0 ist dann darf angefügt werden
        chansel0049
        ----------------------------------------------------
        if you've reached the bottomline - dig further!
        Übersetzer gesucht? http://www.babelport.com

        Kommentar


        • #5
          Original geschrieben von chansel0049
          Damit ist das Problem auch nicht 100% gelöst
          Is klar .. aber ich habe das eher als Hilfe betrachtet um versehentliche Doppelposts zu unterbinden ... wenn einer mutwillig spammen will, kommt man natürlich nicht um eine Datenbanküberprüfung rum.
          Und da am besten auch noch mit Timestamps arbeiten, sonst könnte ja einer einfach ein Zeichen ändern und schon würds wieder hinhauen.
          [color=red]Geht nicht[/color] ist keine Fehlermeldung

          Kommentar


          • #6
            Original geschrieben von Big Chief
            Leite einfach mit header() nach dem Speichern auf eine andere Seite weiter. Diese kann er dann sooft reloaden wie er will.
            es reicht auch auf die gleiche seite zu gehen. eine weitere seite ist nicht notwendig.


            Original geschrieben von chansel0049
            Damit ist das Problem auch nicht 100% gelöst schlieslich kann der User durch den Backbutton wieder auf die Seite mit den POST_VARS
            nein. mit dem backbutton kommst du auf die seite, die VOR dem eintragen zu sehen war. also das formular selber. und das kann er auch wieder ganz normal refreshen wie der user lustig ist.
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Erst mal Danke für viele Infos.
              Ich habe mir das ausgedacht, ob ich hier nicht ganz daneben liege?
              Es ist keine 100%-ge Sicherung.
              Auf jedem Fall, bis USER heraus findet, was er ändern soll, um zu spaßen, geht ihm die Puste aus.

              PHP-Code:
              <?php
              if(isset($_POST["temas"])){ 
              $pruf $_POST["text"]; 
              $anfrage=mysql_query("SELECT text FROM anzeigen WHERE text LIKE'$pruf'");
              $res=mysql_num_rows($anfrage); 
              if(
              $res!=0){header("Location: bla*");}
              else{
              Beitrag eintragen
              }?>
              ich habe nicht geschafft URL abzuschalten
              *bla=http://meine_seite/index.php

              aber das funzt nicht. Mit header() habe ich nicht hin gekriegt.
              Bekomme Fehlermeldung. Ich weiß, dass Ihr euch über die HEADERfrage aufregt.
              Ich habe Forum durch geblättert, und irgendwie kapiere ich das nicht.
              Vor header() darf kein Lehrzeichen, HTML stehen. Das habe ich beabsichtigt.
              Aber nichts funzt.

              Kommentar


              • #8
                Denke das kommt ziemlich nah ran,
                vorrausgesetzt es gibt echt nur ein
                Feld das eingetragen werden soll!
                chansel0049
                ----------------------------------------------------
                if you've reached the bottomline - dig further!
                Übersetzer gesucht? http://www.babelport.com

                Kommentar


                • #9
                  Bekomme Fehlermeldung. Ich weiß, dass Ihr euch über die HEADERfrage aufregt.
                  Ne ne so schlimm ist nicht Wie lautet die fehlermeldung? cant send header info? Arbeitest Du mit includes?
                  _____________
                  Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                  [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                  Kommentar


                  • #10
                    Es gibt insgesamt 7 Felder auszufühlen.
                    Und ich denke, ob Ich noch ein Feld mitüberprüfen soll?
                    Ich include die Datei.
                    Fehler:
                    Warning: Cannot modify header information - headers already sent by (output started at E:\home\meine_seite\www\anzeigen.php:8) in E:\home\meine_seite\www\template\temp_anzeigen.php on line 398

                    Kommentar


                    • #11
                      Original geschrieben von vitalinka
                      Ich include die Datei.
                      Fehler:
                      Warning: Cannot modify header information - headers already sent by (output started at E:\home\meine_seite\www\anzeigen.php:8) in E:\home\meine_seite\www\template\temp_anzeigen.php on line 398
                      Und das mit dem include ist der fehler.. nichts darf ausgegeben werden.. Und die Datei mit der du includest gibt halt <html> oder sonst was aus..
                      _____________
                      Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                      [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                      Kommentar


                      • #12
                        Also Datei anzeigen.php erhält grundsätzlich nur HTML
                        Tabelle, wo in Zeilen verschiedene Dateien includet sind.
                        temp_anzeigen.php ist eine davon. In der Datei temp_anzeigen.php befinden sich verschiedene functionen Formulare und bearbeitungsfunctionen von Formularen.
                        Jede function wird von
                        If(isset($_GET[] oder $_POST[]) zu arbeit aufgerufen.
                        Inzwischen habe ich in der temp_anzeigen.php 477 Zeilen
                        Es sieht so aus:
                        PHP-Code:
                        java script
                        <?php
                        if(isset($_GET[bla])){
                        HTML formular;
                        }
                        ?>
                        java script
                        <?php
                        if(isset($_POST[bla])){
                        Zeile 398 HEADER()
                        formular bearbeiten;
                        }
                        ?>
                        und so weiter.
                        Bis jetzt funzte alles.
                        Nur Header() nicht.
                        Kannst du da noch durchblicken?
                        Wenn ich header() auf
                        PHP-Code:
                        echo“Die anzeige wurde schon eingetragen“
                        ändere dann funzt es, aber das ist nicht was ich will.
                        Seitenaufbau ist in Ordnung, nur Fehlermeldung ist da.

                        Kommentar


                        • #13
                          Also Datei anzeigen.php erhält grundsätzlich nur HTML
                          Tabelle, wo in Zeilen verschiedene Dateien includet sind.
                          temp_anzeigen.php ist eine davon.
                          Also enthält HTML!! ... Das ist das problem.. Du darfst nichts ausgeben ABER GAR NIX.. Du darfst kein html ausgeben und dann php files includen welche header() enthalten...
                          _____________
                          Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                          [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                          Kommentar


                          • #14
                            OK Danke
                            Ich habe das anders hingekriegt.
                            Header() auf
                            PHP-Code:
                            <script language="JavaScript">
                            <!--
                            window.location.href "http://meine_seite/index.php";
                            //-->
                            </script
                            geändert.
                            So weit funzt.
                            Noch Mal Danke für deine Bemühungen.

                            Kommentar


                            • #15
                              Naja... Hast Du java script mal deaktiviert? Wie siehts dann aus
                              _____________
                              Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
                              [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

                              Kommentar

                              Lädt...
                              X