GB kleines Problem grosse Wirkung

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

  • GB kleines Problem grosse Wirkung

    hallo...

    ich bin sehr frisch in der php programmierung dabei!!!
    Damit ich mich so a bissel damit vertraut mache, prog ich ein gästebuch!!!

    ich weiß ich weiß... mal wieder einer mit einem gästebuch!

    erklärung:

    zur zeit speicher ich alle daten über klassen und funktionen(meiner Index.php) in einer datei.

    wenn ich also einen eintrag schreibe und senden drücke speicher ich es in der datei eintrag.cfg, lese diese wieder aus und sende die daten ans gästebuch!

    mein problem wenn ich das formular mit F5 aktualisiere speichert er die zuvor gesendeten daten nochmal!

    ich habe mir schon einen programmcode angeschaut zum unterbinden des neu senden des formulars... aber dazu reicht mein verständnis leider nicht aus!

    kann mir also mal jemand auf einfache weise erklären wie ich da vorgehen soll?

    ich wäre sehr dankbar!!!
    Lebe den Augenblick... Könnte der letzte sein...

  • #2
    Nach dem Speichern einfach
    PHP-Code:
    header('location:index.php'); 
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      wenn's so einfach wäre...

      so verweise ich auf meine index datei und dann bekomme ich eine lerre seite angezeigt! index.php ist die datei in der die klassen stehen!

      ich rufe in meinem gästebuch guestbook.php

      3 klassen auf

      <?php

      include('index.php')

      //Klasse Speichern in datei
      $guestbookWriteInput = new guestbookWrite();
      $guestoutput = $guestbookWriteInput->eintragGB;

      //Lesen der Gästebuchfunktionsdaten
      $adminInformationen = new Adminread();
      $adminDetail = $adminInformationen->adminInfo;

      //Lesen aus der Datei Eintrag.cfg
      $guestbookreadInput = new guestbookRead();
      $guestinput = $guestbookreadInput->guestreadinput;

      ?>

      dann folgt der seiten aufbau....

      meine klasse speichern sieht wie folgt aus

      <?php

      class guestbookWrite
      {
      var $eintragGB = array();

      function guestbookWrite()
      {
      $lesegaestebuch = new guestbookRead();
      $eintrag = $lesegaestebuch->guestreadinput;

      if("" != $_POST['eingabeName'])
      {
      $this->eintragGB[0] = $_POST['eingabeName'];
      $this->eintragGB[1] = date("d.M.Y");
      $this->eintragGB[2] = $_POST['eingabeEmail'];
      $this->eintragGB[3] = $_POST['eingabeHomepage'];
      $this->eintragGB[4] = $_POST['eingabeICQ'];
      $this->eintragGB[5] = $_POST['eingabeText'];
      $this->eintragGB[6] = $_POST['ID'];
      $fp = @fopen("Eintrag.cfg","a");
      @fwrite($fp,$this->eintragGB[0] . chr(10));
      @fwrite($fp,$this->eintragGB[1] . chr(10));
      @fwrite($fp,$this->eintragGB[2] . chr(10));
      @fwrite($fp,$this->eintragGB[3] . chr(10));
      @fwrite($fp,$this->eintragGB[4] . chr(10));
      @fwrite($fp,$this->eintragGB[5] . chr(10));
      fclose($fp);

      }
      return $this->eintragGB;
      }
      }

      ?>

      also wo soll's hin?
      Lebe den Augenblick... Könnte der letzte sein...

      Kommentar


      • #4
        php-tags benutzen!

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          php-tags benutzen!
          na das ist ja mal ne antwort mit der ich richtig viel anfangen kann!
          Lebe den Augenblick... Könnte der letzte sein...

          Kommentar


          • #6
            Original geschrieben von realgarfield
            na das ist ja mal ne antwort mit der ich richtig viel anfangen kann!
            tja, und ohne php-tags wird es auch keine weiteren geben...oder glaubst du im ernst man erkennt ohne Highlighting irgendwas?
            abgesehen davon: Mich interessiert es nicht, wer mir so dumm kommt, hat meine Hilfe auch nicht verdient *zuck*, und es steht übrigens in den Regeln die Tags zu benutzen, aber da du die ja scheinbar nicht gelesen hast ... Pech!

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              kann leider nicht großartig helfen, denn ich erkenne kaum was in deinem code

              aber ich habe beim groben überfliegen den eindruck gewonnen, dass du eine echt starke oop-basierende architektur entwickelst... ich zeige dir nachher meine klasse
              PHP-Code:
              class myEcho extends myOutput 
              http://www.php-resource.de/forum/sea...der=descending <- erster treffer.
              Zuletzt geändert von penizillin; 01.09.2005, 16:02.

              Kommentar


              • #8
                mensch die Regeln! hast du die Regeln nicht gelesen realgarfield?

                und das, gleich beim ersten Beitrag, mann mann, Kinder!
                In Flames - Pinbal Map
                Becoming the Archetype - No Fall Too Far
                Pantera

                Kommentar


                • #9
                  @ghostgambler:

                  na jut... mein fehler... ist aber genauso wie:

                  tee trinken

                  "das abwarten und " hätte davor nicht geschadet!


                  ich schau heut schon seit 9 std. auf diese möhre und bin nicht grade für kurzantworten aufgelegt!!!

                  ich probier's ma so:


                  PHP-Code:
                  <?php

                  include('index.php')

                  //Klasse Speichern in datei
                  $guestbookWriteInput = new guestbookWrite();
                  $guestoutput $guestbookWriteInput->eintragGB;

                  //Lesen der Gästebuchfunktionsdaten
                  $adminInformationen = new Adminread();
                  $adminDetail $adminInformationen->adminInfo;

                  //Lesen aus der Datei Eintrag.cfg
                  $guestbookreadInput = new guestbookRead();
                  $guestinput $guestbookreadInput->guestreadinput;

                  ?>

                  dann folgt der seiten aufbau....

                  meine klasse speichern sieht wie folgt aus

                  <?php

                  class guestbookWrite
                  {
                  var 
                  $eintragGB = array();

                  function 
                  guestbookWrite()
                  {
                  $lesegaestebuch = new guestbookRead();
                  $eintrag $lesegaestebuch->guestreadinput;

                  if(
                  "" != $_POST['eingabeName']) 
                  {
                  $this->eintragGB[0] = $_POST['eingabeName'];
                  $this->eintragGB[1] = date("d.M.Y");
                  $this->eintragGB[2] = $_POST['eingabeEmail'];
                  $this->eintragGB[3] = $_POST['eingabeHomepage'];
                  $this->eintragGB[4] = $_POST['eingabeICQ'];
                  $this->eintragGB[5] = $_POST['eingabeText'];
                  $this->eintragGB[6] = $_POST['ID'];
                  $fp = @fopen("Eintrag.cfg","a");
                  @
                  fwrite($fp,$this->eintragGB[0] . chr(10));
                  @
                  fwrite($fp,$this->eintragGB[1] . chr(10)); 
                  @
                  fwrite($fp,$this->eintragGB[2] . chr(10));
                  @
                  fwrite($fp,$this->eintragGB[3] . chr(10));
                  @
                  fwrite($fp,$this->eintragGB[4] . chr(10));
                  @
                  fwrite($fp,$this->eintragGB[5] . chr(10));
                  fclose($fp);

                  }
                  return 
                  $this->eintragGB;
                  }
                  }

                  ?>
                  Lebe den Augenblick... Könnte der letzte sein...

                  Kommentar


                  • #10
                    ziemlich doof das mit ner Textdatei zu machen -.-

                    mach einfach nen
                    PHP-Code:
                    header('Location:http://' $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF']); 
                    ist das Einfachste (mit ner Text-Datei)

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Hi,

                      wenn ich dich richtig verstanden habe, du brauchst eine Reload Sperre damit sich
                      keine doppelte Beiträge in deinen GB sammeln.
                      Du könntest in einen verstecktes Formularfeld einen Zeitstempel speichern:

                      <input type="hidden" name="time" value="<?php echo time(); ?>">

                      Zum festhalten der Sekundenzahl, speicherst du der Zeitstempel in einen extra txt file.
                      Bein nächsten Eintrag in GB muss die neue Zahl höher sein als die alte. Falls
                      beide Werte jedoch gleich sind (Reload mit F5), dann ist einen doppelten Beitrag
                      aus dem Browsercache.
                      In Flames - Pinbal Map
                      Becoming the Archetype - No Fall Too Far
                      Pantera

                      Kommentar


                      • #12
                        pippo, auch du solltest dir den thread anschauen, auf den ich verwiesen habe.

                        Kommentar


                        • #13
                          Original geschrieben von penizillin
                          pippo, auch du solltest dir den thread anschauen, auf den ich verwiesen habe.
                          gerade getan..., ja guter trick das mit den 3 seiten!
                          Hatte dein Verweis übersehen
                          In Flames - Pinbal Map
                          Becoming the Archetype - No Fall Too Far
                          Pantera

                          Kommentar


                          • #14
                            Was bringt denn der Zeitstempel?

                            2 User kommen auf das Gästebuch und schreiben einen Eintrag.

                            Der eine fängt um 15.01.13 Uhr an, was dann im Hidden feld steht. Der zweite fängt um 15.02.01 an, speichert den Eintrag aber um 15.03.34 Uhr. Der erste ist aber erst um 15.04.17 Uhr fertig und kann nun seinen Eintrag nicht speichern!

                            Das ist doch nicht sinn der Sache

                            Regelt das über eine Session und das wars dann!

                            Kommentar


                            • #15
                              Original geschrieben von LGC
                              Regelt das über eine Session und das wars dann!
                              ne session für den reload-Schutz eines Gästebuches? Oo
                              Ich find das ist Perlen vor die Säue

                              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                              Wie man Fragen richtig stellt

                              Kommentar

                              Lädt...
                              X