Ankündigung

Einklappen
Keine Ankündigung bisher.

Gästebuch

Einklappen

Neue Werbung 2019

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

  • Gästebuch

    Hallo Leute,

    habe ein Problem mit mein GB. Ich möchte das man sieht wie viele schon in das GB rein geschrieben haben. Hier der Code:

    PHP-Code:
    // gaestebuch.php

    <html>
    <head>
    <title>G&auml;stebuch</title>
    </head><body bgcolor="yellow">
    <h1><center><font color="red">Hier k&ouml;nnt ihr was reinschreiben ins G&auml;stebuch</font></center></h1>

    </p>
    [url="eintrag.html"]Eintragen im G&auml;stebuch[/url]

    </p>
    Hier seht ihr jetzt die Eintr&auml;ge:::

    </p>
    <hr>

    // auslesen der einträge

    <?php
     $datei 
    fopen("gbuch.txt""a+");
     
    fpassthru($datei);
     
    /*werden die entahltenen einträge ausgelesen und direkt an den browser weitergeleitet */
    ?>
    PHP-Code:
    // eintrag.html

    <html>
    <
    head><title>eintragen</title>
    <
    script language="JavaScript" src="ausw.js">
    </script>
    <noscript></noscript>
    </head>
    <body bgcolor = "yellow">
    <form name = "form1" action = "auswertung.php" method = "post">
    <pre>
    Tragen sie bitte ihre Meinung und Daten hier ein, danke:

    </p>
    Name: <input size = "25" name = "name">  </input>

    Mail: <input size = "25" name = "mail">  </input>

    Ort : <input size = "25" name = "ort">   </input>

    </pre>
    <center><textarea name = "kommentar" rows = "10" cols = "80"></textarea>

    </p></center>
    <center>
    <input type = "submit" onclick = "return test()" value = "Meinung jetzt absenden">
    </center>

    <center><input type = "reset" value = "Meinung jetzt revedieren"></center>
    </form>
    </body>
    </html> 
    PHP-Code:
    // auswertung.php

    // funktion zaehle()
    // die soll die einträge mit zählen

    <?php
    function zaehle() {
     
    $datei2 fopen("counter.txt" "r+");
     
    $zahl fgets($datei2 10);
     
    #if($zahl == "")
     #{
     #$zahl = 0;
     #}
     
    $zahl++;
     
    rewind($datei2);
     
    fclose($datei2);
     return 
    $zahl;
    }
    ?>

    // hier werden die einträge gespeichert

    <?php
     $datei 
    fopen("gbuch.txt""a");
     
    fwrite($dateizaehle());
     
    fwrite($datei"
    "
    );
     
    fwrite($datei" Name: $name ");
     
    fwrite($datei"
    "
    );
     
    fwrite($datei" Mailadresse: $mail ");
     
    fwrite($datei"
    "
    );
     
    fwrite($datei" Sie wohnen in $ort ");
     
    fwrite($datei"
    "
    );
      
    fwrite($datei$kommentar);
     
    fwrite($datei"<hr>");
     
    fclose($datei);
    ?>

    <body bgcolor = "yellow"></body>
    Ihrer Eintrag ist nun im G&auml;stebuch gespeichert.

    <a href = "gaestebuch.php">Zur&uuml;ck zum G&auml;stebuch</a>
    Danke im Vorraus.

    Alexander


  • #2
    Habe ganz vergessen zu schreiben was nicht funktioniert. Also. Der Wert der Variablen
    $zahl ist immer NULL. Egal wie viele Einträge es gibt. Er wird nie erhöht.

    Alexander

    Kommentar


    • #3
      haste $zahl +1 mal probiert?

      Kommentar


      • #4
        Was willst du eigentlich zählen, die Zeilen?

        Kommentar


        • #5
          @zwerg: --> $zahl++;

          @php_neuling:

          "Ihrer Eintrag" ??

          wegen deinem Problem:

          welchen Wert hat die variable $zahl genau?
          0, NULL oder ""?

          mfg Niedi
          http://forum.developers-guide.net

          Klick dich REICH:
          http://www.klick-reich.de/index2.php...lden&ref=Niedi

          Kommentar


          • #6
            Vielleicht hilft es ja weiter:
            http://forum.developers-guide.net/thread47.html
            http://forum.developers-guide.net/thread61.html

            Grüße Ben .
            privater Blog

            Kommentar


            • #7
              Mein Vorschlag , nicht 20 mal fwrite nutzen

              Fasse den gesammten Eintrag zu einen zusammen , zum Beispiel

              PHP-Code:



              <html> 
              <head> 
              <title>G&auml;stebuch</title> 
              </head><body bgcolor="yellow"> 
              <h1><center><font color="red">Hier k&ouml;nnt ihr was reinschreiben ins G&auml;stebuch</font></center></h1>

              </p> 
              [url="eintrag.html"]Eintragen im G&auml;stebuch[/url]

              </p> 
              Hier seht ihr jetzt die Eintr&auml;ge:::

              </p> 
              <hr> 

              // auslesen der einträge 

              <?php 
              //datei öffnen
              //jede Zeile einlesen
              // zerlegen und Array elemente auslesen weiter unten nochmal erklärt
              // würde ich gleich mit zählen verbinden so ist es doppelt gemoppelt.
              $content "";

               
              $datei fopen("gbuch.txt""r"); 
                while(!
              feof($datei)){
                       
              $content .= fgets($datei,255);
                  }

                  
              $content explode("|##|",$content);
                  
                  for(
              $i=0;$i<count($content)-1;$i++){
                       echo 
              $content[$i]
                   }
               
              ?>
              PHP-Code:
              <?php
              function zaehlen(){
              $content ""
              $inhalt 0;      

                     
              // Datei im lese modus öffnen
                     
              $datei fopen("gbuch.txt",r);
                     
              // Solange nicht das Ende der Datei erreicht ist
                     
              while(!feof($datei)){
                            
              //weise content immer 255 Zeichen ~ 1 Zeile zu und 
                            // hänge es an den alten Wert content dran
                            
              $content .= fgets($datei,255);
                      }
                      
              fclose($datei);

                     
              /* hier brauchen wir unser Trennzeichen wieder 
                     an jedem Trennzeichen das er findet zerlegt uns es die explode() 
                     Funktion und weisst es an ein Array Element zu
                     also   
                                $string = huhu welt|##|wie geht|##|es dir|##|
                                $string = explode("|##|" , $string);
                               
                                 $string = array(0 => "huhu welt",
                                                               1  => "wie geht",
                                                               2  => "es Dir"
                                                               3  =>  "");
                          
                        Da das letzte Array Element leer ist einfach rauslöschen dann oder
                       eins abziehen nachdem er es durchgezählt hat
                     */
                                

                     
              $content explode("|##|",$content);
                     
              $inhalt     count($content)-1;
                     return(
              $inhalt);
              }

              $anzahl zaehlen();
              echo 
              $anzahl;
              ?>
              PHP-Code:
              <?php
              $eintrag 
              "Name :"
                                       
              $_POST['name']
                                    .
              "
              Mail:"
              .
                                         
              $_POST['mail']
                                    .
              "
              Sie wohnen in"
              .
                                         
              $_POST['ort']
                                    .
              "
              "
              .
                                           
              $_POST['kommentar']."
              [b]|##|[/b]"
              ;

              $datei fopen("gbuch.txt""a");
              fwrite($eintrag,$datei);
               
              fclose($datei);
              ?>
              Im Prinzip läuft das so ab , wir speichern alles in einer Variablen ab
              insklusive eines Trennzeichens am Ende dem > |##|< das brauchen wir
              später zum zählen.
              Und schreiben uns das alles in eine Datei rein.

              Muss natürlich noch optimiert werden dann beim auslesen etc , was ist
              wenn kein eintrag in der datei ist ? Da muss man einfach schaun ist die
              datei > 2 byte.

              0 byte hatte ich auch mal gedacht , dann hab ich sie manuell gelöscht und
              sie war aber immer 2 byte gross irgendwie.
              Des weiteren eine Überprüfung ist überhaupt was gesetzt worden ?
              Also hat der User was eingegeben sonst schreibt er ein leerzeichen rein .

              Kommentar

              Lädt...
              X