Eingabe Formular

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

  • Eingabe Formular

    Hallo zusammen

    Ich habe Problem mit dem Script.

    PHP-Code:
    <?
    /*############### INSTALLATION ###############*/

    // 1. Variablen anpassen
      $tablewidth = 800;                //Breite der Tabelle
      $tableboja = "#669999";
      $tableboja2 = "";
      $showporukas = 200;                //Anzahl der anzuzeigenden Kommentare
      $file = "shouts.txt";                //Name der Shoutsdatei
      $maxlength_ime = "30";            //Maximallänge für den Namen
      $maxlength_tel = "30";
      $maxlength_mail = "30";
      $maxlength_poruka = "300";            //Maximallänge für das Kommentar
      $break_ime = "30";                //Zeilenumbruch nach wieviel Zeichen im Namen?
      $break_tel = "30";
      $break_mail = "30";
      $break_poruka = "30";            //Zeilenumbruch nach wieviel Zeichen im Kommentar?

    /*############### SCRIPT ###############*/
      function str_break($str, $maxlen){
        $nobr = 0;
        $len = strlen($str);
        for ($i = 0; $i<$len; $i++){
          if (($str[$i]!=' ') && ($str[$i]!='-') && ($str[$i]!="\n"))
            $nobr++;
          else{
            $nobr = 0;
            if($maxlen+$i>$len){
              $str_br .= substr($str, $i);
              break;
            }
          }
          if ($nobr>$maxlen){
            $str_br .= ' '.$str[$i];
            $nobr = 1;
          }
          else
            $str_br .= $str[$i];
        }
        return $str_br;
      }

      if($show == "all") echo "<br>";
      else echo "";

      if($input_ime != "" && $input_ime != "" && $input_mail != "" &&
    $input_mail != "" && $input_tel != "" && $input_tel != "" &&
     $input_poruka != "" && $input_poruka != ""){

        $tmp = fopen($file,"r");
        while(!feof($tmp)){
          $row = fgets($tmp,999999);
          list($tmpime,$tmpmail,$tmptel,$tmpporuka) = split("\|",$row);
          if($tmpime != "" && $tmpmail != "" && $tmptel != "" && $tmpporuka != ""){
            $ime = $tmpime;
            $mail = $tmpmail;
            $tel = $tmptel;
            $poruka = $tmpporuka;
            $poruka = str_replace("\n","",$poruka);
          }
        }
        fclose($tmp);

        $input_ime = str_break($input_ime, $break_ime);
        $input_ime = str_replace("<","&lt;",$input_ime);
        $input_ime = str_replace(">","&gt;",$input_ime);
        $input_ime = stripslashes($input_ime);
        $input_mail = str_break($input_mail, $break_mail);
        $input_mail = str_replace("<","&lt;",$input_mail);
        $input_mail = str_replace(">","&gt;",$input_mail);
        $input_mail = stripslashes($input_mail);
        $input_tel = str_break($input_tel, $break_tel);
        $input_tel = str_replace("<","&lt;",$input_tel);
        $input_tel = str_replace(">","&gt;",$input_tel);
        $input_tel = stripslashes($input_tel);
        $input_poruka = str_break($input_poruka, $break_poruka);
        $input_poruka = str_replace("<","&lt;",$input_poruka);
        $input_poruka = str_replace(">","&gt;",$input_poruka);
        $input_poruka = stripslashes($input_poruka);

        if($ime != $input_ime || $mail != $input_mail || $tel != $input_tel || $poruka != $input_poruka){
          $tmp = fopen($file, "a");
          fputs($tmp,"$input_ime &#160|$input_mail &#160|$input_tel &#160|$input_poruka\n");
          fclose($tmp);
        }
      }

      $imes = array();
      $mails = array();
      $tels = array();
      $porukas = array();
      $tmp = fopen($file,"r");
      while(!feof($tmp)){
        $row = fgets($tmp,999999);
        list($ime,$mail,$tel,$poruka) = split("\|",$row);
        if($ime != ""){
          array_push($imes,$ime);
          array_push($mails,$mail);
          array_push($tels,$tel);
          array_push($porukas,$poruka);
        }
      }
      fclose($tmp);

      if($show == "all")
        $max = count($imes);
      else
        $max = $showporukas;

      for($i=0; $i<$max; $i++)
        echo "<tr>
                <td valign='top' width='200'>
                    <font face='tahoma,arial' size='2' color='#666666'>$imes[$i]
                    </font>
                </td>
                <td valign='top' width='200'>
                    <font face='tahoma,arial' size='2' color='#666666'>$mails[$i]
                    </font>
                </td>
                <td valign='top' width='200'>
                    <font face='tahoma,arial' size='2' color='#666666'>$tels[$i]
                    </font>
                </td>
                <td valign='top' width='200'>
                    <font face='tahoma,arial' size='2' color='#666666'>$porukas[$i]
                    </font>
                </td>
             </tr>\n";
      echo "
          </td>
        </tr>
      </form>
    </table>
      ";
    ?>
    Mein Problem besteht darin, das die Seite nach der Eingabe,
    nicht aktualisiert(reload) wird. Wenn ich aber die Seite per F5
    oder den Button auf dem Browser anklicke, dann wird sie aktualisiert
    aber auch es wird alles zweimal eingegeben, d.h. die Daten werden
    bei jeder Aktualisierung abgeschickt!

    Wie kann ich das verbessern?
    Zuletzt geändert von DonaldDuck; 17.11.2006, 14:07.
    MfG
    DonaldDuck

    *************************
    Einer für alle und alle für Einen.

  • #2
    brech den code um vorher hilft dir keiner

    siehe regeln

    Kommentar


    • #3
      So jetzt ist ok kann mir bitte jemand helfen?
      Zuletzt geändert von DonaldDuck; 17.11.2006, 14:10.
      MfG
      DonaldDuck

      *************************
      Einer für alle und alle für Einen.

      Kommentar


      • #4
        Indem man die Entertaste drückt.

        aus

        PHP-Code:
        laaaaaaanger code
        wird so
        PHP-Code:
        laaaaaaa
        nger code

        Kommentar


        • #5
          warum sollte die seite automatisch aktualisiert werden?

          normalerweise leitet man nach erfolgreichem eintrag auf eine danke-seite weiter:

          header()

          Kommentar


          • #6
            Es ist ein Formular für meine Seite.
            Die Benutzer sollen sich auf der Seite eintragen können und anschliessend wird das alles auf der gleicher Seite unten anzeigen.

            Änlich wie ein Shoutbox.
            Zuletzt geändert von DonaldDuck; 17.11.2006, 14:19.
            MfG
            DonaldDuck

            *************************
            Einer für alle und alle für Einen.

            Kommentar


            • #7
              sorry, der code ist mir grad zu lang und unübersichtlich zum reindenken.

              Du könntest es so lösen:

              User füllt formular aus und sendet es ab.

              Die Folgeseite (Zielseite des Forms) macht dann folgendes:
              1. daten eintragen
              2. evtl. Formular anzeigen (falls gewünscht)
              3. Daten auflisten.

              Wenn du diese Reihenfolge einhältst, dann solltest du dein gewünschtes ergebnis erhalten. Wie machst du es?

              Kommentar


              • #8
                Vielen Dank aber ich bin noch nicht so gut mit php.
                Kannst Du mir das zeigen?
                Die Daten(Name, Telefonnr., Email und Nachricht) welche sind eingegeben worden sollen auch(ohne manueller aktualisierung) unten erscheinen.

                So soll das aussehen:
                http://www.josava.ch/form/shoutbox.php
                MfG
                DonaldDuck

                *************************
                Einer für alle und alle für Einen.

                Kommentar


                • #9
                  was soll ich dir zeigen?

                  Sag mir erstmal, wie dein script funktioniert. ( ich weiß, ich bin faul)

                  Kommentar


                  • #10
                    Funktioniert doch!?

                    Kommentar


                    • #11
                      Ja aber nur teilweise, probier etwas rein zu schreiben. Es wird nicht auf der liste unten hinzugefügt. Übrigens ich weiss das mit uns Anfängern nicht einfach ist.
                      MfG
                      DonaldDuck

                      *************************
                      Einer für alle und alle für Einen.

                      Kommentar


                      • #12
                        Also ich weiss nicht aber vor ein par minuten hat nicht funkt und jetzt schon.


                        Etwas anders kannst Du mir sagen wie so ist die textarea so eingestellt das es ersta auf der Mitte schreibt.

                        Hier code nochmals:
                        EDIT:
                        by TobiaZ: bitte gewöhne dir ab, hier ellenlange codes zu posten. Die liest hier sowieso keiner.
                        Zuletzt geändert von TobiaZ; 17.11.2006, 16:36.
                        MfG
                        DonaldDuck

                        *************************
                        Einer für alle und alle für Einen.

                        Kommentar


                        • #13
                          Etwas anders kannst Du mir sagen wie so ist die textarea so eingestellt das es ersta auf der Mitte schreibt.
                          weil da leerzeichen oder tabs oder sonst was drinstehen.

                          Kommentar


                          • #14
                            Super alles ist ok. Vielen Dank für Unterstützung und Geduld. :-))
                            MfG
                            DonaldDuck

                            *************************
                            Einer für alle und alle für Einen.

                            Kommentar

                            Lädt...
                            X