Gästebuch auf Dateibasis

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

  • Gästebuch auf Dateibasis

    HI,

    Ich habe schon die Suchfunktion genutzt, aber nichts gefunden.
    ich schreibe gerade an einem Gästebuch, soweit sogut,. Eigentlich läuft alles gut, außer 1e Sache:

    Ich übernehme Daten von einem Formular.
    Die Formular Datei schickt diese Daten an die Datei "check.php", und diese verarbeitet dann die Postings weiter. So, wenn ich nun im Nachrichten-Formular Zeilenbrüche mache, dann sind die später auch in der Datei, in der die Daten gespeichert werden. Wie kann ich das wegbekommen, da ich je Zeile in der Datei ein Array mit

    PHP-Code:
    $array=file($file); 
    mache !!!

    ich habe das schon so versucht, aber die Zeilenbrüche sind immernoch in der Datei:

    PHP-Code:
    //Ertmal Leerzeichen und % Zeichen entfernen, und HTML-Tags:
    $postnachricht=str_replace('%','',strip_tags(trim($_POST[nachricht])));
    //und danach wollte ich die Zeilenumbrüche so wegbekommen:
    $postnachricht=str_replace('\n','',$postnachricht); 
    Ich hoffe, Ihr wisst, was ich meine. Die 2. Funktion ist die mit dem Blättern, aber da werd ich erstmal die Suche ausprobieren.

  • #2
    php.net/nl2br
    oder "\r\n" durch "" ersetzen
    Zuletzt geändert von penizillin; 25.11.2004, 16:34.

    Kommentar


    • #3
      @penizillin

      es geht mit deiden funktionen von dir nicht. ich poste jetzt mal meine ganze datei check.php, und hoffe, jemand kann helfen. ich habe sie extra sehr gut kommentiert, und due funktion lasse ich jetzt einfach mal draußen:

      PHP-Code:
      <?php
      include('config.inc.php');
      echo 
      "<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\">";
      // Datum welches gespeichert wird:
      $date2=date("H:i");
      $date1=date("d M Y");
      $date=$date1."  ".$date2;

      // Zeilenumbrüche im Ascii-Code:


      // Postings kürzen, HTML entfernen, und % Zeichen ersetzten:
      $postname=str_replace('%','',strip_tags(trim($_POST[name])));
      $postnachricht=str_replace('%','',strip_tags(trim($_POST[nachricht])));
      $posttitel=str_replace('%','',strip_tags(trim($_POST[titel])));
      $postmail=str_replace('%','',strip_tags(trim($_POST[mail])));


      // Alle Einträge überprüfen ob vorhanden:
      if (!$postname) {$fehler "Bitte einen Namen angeben !!<Br>";}
      if (!
      $postnachricht) {$fehler .= "Bitte eine Nachricht eingeben !!<Br>";}
      if (!
      $posttitel) {$posttitel=" ";}
      if (!
      $postmail) {$fehler .= "Bitte eine Mail-Adresse angeben !!<Br>";}

      // Auf Fehler überprüfen:
      if ($fehler) {echo "<font color=\"red\" size=\"2\">".$fehler."<br></font>"; }

      // Kein Fehler, also weiter gehen zum Speichern:
      else {

      // Testen ob Datei $file vorhande, wenn nicht, dann kein \n, wenn ja, dann \n --> je Eintrag neue Zeile:
      if (file_exists($file)) {$ausgabe="\n".$date."%".$postname."%".$postnachricht."%".$posttitel."%".$postmail; }
      if (!
      file_exists($file)) {$ausgabe=$date."%".$postname."%".$postnachricht."%".$posttitel."%".$postmail; }

      // Open $file und speichern:
      $fp=fopen($file'a+');
      fputs($fp$ausgabe);
      fclose($fp);
      echo 
      "<font size=\"2\">Danke ".$postname." für deinen Eintrag. <a href='gb.php'>Hier</a> gehts zurück zum Gästebuch";
      }
      ?>
      wenn ich im nachrichten feld des Formulars normnal reinschreibe, dann sieht meine txt Datei danach so aus:

      Code:
      25 Nov 2004  17:50%Name%Nachricht%Titel%Mail@Mail.de
      wobei sie so aussieht, sobald ich zeilenumbrüche mache (unter verwendung von nl2br):
      Code:
      25 Nov 2004  17:51%Name%Nachricht Zeile 1<br />
      
      Nachricht Zeile 2<br />
      
      Nachricht Zeile 3<br />
      
      Nachricht Zeile 4<br />
      
      Nachricht Zeile 5%Titel%Mail@Mail.de
      Ich muss aber jede Nachricht in einer Zeile haben, weil ich je Zeile eine Array habe, und diese per explode in die einzelnen Nachrichten splitte (mit einer for-Schleife )

      Hoffe, ihr könnt mir helfen !!
      Danke
      Zuletzt geändert von firstlord18; 25.11.2004, 16:51.

      Kommentar


      • #4
        kennst du den unterschied zwischen
        PHP-Code:
        $bla str_replace('\r\n'""$bla); 
        und
        PHP-Code:
        $bla str_replace("\r\n"""$bla); 
        ?

        Kommentar


        • #5
          ne , leider nicht .
          sag den mir mal bitte !!!

          PHP-Code:
          $bla str_replace('\r\n'""$bla); 
          soll ich das bei allen anderen str_replace funktionen auch umändern in "..." ??

          Kommentar


          • #6
            http://de3.php.net/language.types.string

            Kommentar


            • #7
              ou mann, vielen vielen dank, echt. ich habs jetzt mit

              PHP-Code:
              str_replace("\r\n""""$postnachricht); 
              gemacht, und es funzt super. außerdem hab ich endlich was neues gelernt

              Kommentar


              • #8
                also eine frage noch:
                wenn ich en server auf meinem pc mit foxserv mache, dann funzt alles super, nur wenn ich die Dateien dann auf den Server lade, das Formular ausfülle, und es abschicke, verursacht die Datei eintragen_check.php einen fehler !!

                die config.inc.php:
                PHP-Code:
                <?php
                //Datei zum Spiechern der Einträge:
                $file="data.txt";
                ?>
                die eintragen_check.php:
                PHP-Code:
                <?php
                include('config.inc.php');
                echo 
                "<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\">";
                // Datum welches gespeichert wird:
                $date2=date("H:i");
                $date1=date("d M Y");
                $date=$date1."  ".$date2;

                // Postings kürzen, HTML entfernen, und % Zeichen ersetzten:
                $postname=str_replace('%','',strip_tags(trim($_POST[name])));
                $postnachricht2=str_replace('%','',strip_tags(trim($_POST[nachricht])));
                $posttitel=str_replace('%','',strip_tags(trim($_POST[titel])));
                $postmail=str_replace('%','',strip_tags(trim($_POST[mail])));

                // In der Nachricht noch die Zeilenumbrüche entfernen:
                $postnachricht=str_replace("\r\n",'',$postnachricht2);

                // Alle Einträge überprüfen ob vorhanden:
                if (!$postname) {$fehler "Bitte einen Namen angeben !!<Br>";}
                if (!
                $postnachricht) {$fehler .= "Bitte eine Nachricht eingeben !!<Br>";}
                if (!
                $posttitel) {$posttitel=" ";}
                if (!
                $postmail) {$fehler .= "Bitte eine Mail-Adresse angeben !!<Br>";}

                // Auf Fehler überprüfen:
                if ($fehler) {echo "<font color=\"red\" size=\"2\">".$fehler."<br></font>"; }

                // Kein Fehler, also weiter gehen zum Speichern:
                else {

                // Testen ob Datei $file vorhande, wenn nicht, dann kein \n, wenn ja, dann \n --> je Eintrag neue Zeile:
                if (file_exists($file)) {$ausgabe="\n".$date."%".$postname."%".$postnachricht."%".$posttitel."%".$postmail; }
                if (!
                file_exists($file)) {$ausgabe=$date."%".$postname."%".$postnachricht."%".$posttitel."%".$postmail; }

                // Open $file und speichern:
                $fp=fopen($file'a+');
                fputs($fp$ausgabe);
                fclose($fp);
                echo 
                "<font size=\"2\">Danke ".$postname." für deinen Eintrag. <a href='gb.php'>Hier</a> gehts zurück zum Gästebuch";
                }
                ?>
                ich hab dem Ordner, in dem sich das Script befindet, die Rechte 777 gegeben !!!
                So, nun der Fehler:


                Code:
                Fatal error: Call to undefined function: phpinclude() in /var/www/html/vps04427/www/1/eintragen_check.php on line 1
                deer Fehler passiert in der 1. Zeile, aber in der steht doch nur
                include('config.inc.php');

                Bitte helft mir, ich versuche die ganze Zeit, das zu regeln, schaffes es aber nicht !!!Danke

                Kommentar


                • #9
                  setz doch noch ne leerzeile zwischen "<?php" und "include..."

                  Kommentar


                  • #10

                    PHP-Code:
                    <?php
                    include 'config.inc.php';

                    Versuchs mal ohne die Klammern. Hast du zwischen

                    <?php und include

                    auch einen Zeilenumbruch?



                    OffTopic:
                    Edith sagt, da war jemand schneller als ich...
                    Zuletzt geändert von Heini81; 25.11.2004, 19:02.

                    Kommentar


                    • #11
                      Original geschrieben von Heini81
                      PHP-Code:
                      <?php
                      include 'config.inc.php';

                      Versuchs mal ohne die Klammern. Hast du zwischen

                      <?php und include

                      auch einen Zeilenumbruch?

                      wenn ich das mache, dann kommt:
                      Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/html/vps04427/www/1/eintragen_check.php on line 1

                      oh, ich bin am verzweifeln, jetzt code ich so en schönes gästebuch (für mich als nob), und dann gehts aufm richtigenm space net, nur aufm eigenen pc. warum ??
                      hab auch die variante von penizelin ausprobiert, geht net !!!

                      Kommentar


                      • #12
                        du hast doch nicht etwa
                        PHP-Code:
                        <?php und include
                        in deiner php-datei stehen!?

                        [/me fasst sich an der brust, sucht nach herztropfen und legt sich vorsichtig auf den boden]

                        Kommentar


                        • #13
                          Original geschrieben von penizillin
                          du hast doch nicht etwa
                          PHP-Code:
                          <?php und include
                          in deiner php-datei stehen!?

                          [/me fasst sich an der brust, sucht nach herztropfen und legt sich vorsichtig auf den boden]
                          OffTopic:

                          Nein, ich schreibe meistens
                          PHP-Code:
                          <?php und danach include und danach...
                          damit auch die Reihenfolge klar wird....

                          Kommentar


                          • #14
                            Original geschrieben von penizillin
                            du hast doch nicht etwa
                            PHP-Code:
                            <?php und include
                            in deiner php-datei stehen!?

                            [/me fasst sich an der brust, sucht nach herztropfen und legt sich vorsichtig auf den boden]

                            sry, dass ich so dumm bin, aber ich hab doch den quelltext gepostet.
                            ich habe in der config.php.inc nur stehen:
                            PHP-Code:
                            <?php
                            $file
                            ="file.txt";
                            ?>
                            und ich will das Script halt einstellbar halten, deswegen will ich das in einer Variable gespeichert haben, damit man die Datei auch ändern kann. So, und nun muss ich doch (denk ich zumindest)
                            <?php

                            include("config.inc.php");
                            ........
                            ?>
                            scheiben oder ??

                            was soll ich stattdessen nehmen ??

                            Kommentar


                            • #15
                              klingt richtig. was stimmt denn jetzt nicht?

                              Kommentar

                              Lädt...
                              X