Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: Problem mit PHP Eingabe

  1. #1
    Kinimod
    Gast

    Standard Problem mit PHP Eingabe

    Hallo, ich habe mir eine Art Gästebuch gebastelt, was die Daten in einer .txt Datei speichert.

    Ich möchte es gerne so haben, das alle Einträge gespeichert werden.
    Nur das Problem ist, das die Datei später so aussieht:
    Name1|Text1
    Name2|Text2
    (Leerzeile, die automatisch beim ersten Eintrag entsteht)

    So, wenn ich die Daten dann aufrufe habe ich das Problem, das bei dem leereintrag nix kommt, aber die Ausgabe sieht dann so aus:
    Name: Name1
    Test: Text1
    _____
    Name: Name2
    Text: Text2
    _____
    Name:
    Text:
    Um diese Leerzeile zu unterdrücken habe ich mir dann folgendes ausgedacht.

    Ich habe eine count.txt Datei, die die Einträge zählt.
    Wenn die count.txt Datei = 0 ist, soll der erste Eintrag die vorhandene Datei überschreiben.
    Wenn Count.txt >= 1 ist, sollen die nachkommenden Einträge angehangen werden.

    Somit kann die die eintrag.txt Datei zum Beginn mit dem Inhalt "aaa" füllen.
    Der wird dann einfach durch den ersten Eintrag ersetzt, dadurch entsteht keine Freizeile.
    Alle anschließenden Eintragungen werden dann einfach angehangen.

    Die Ausgabe habe ich so geregelt, das wenn count.txt = 0 ist der Text "keine Eintragungen" kommt, wenn count.txt >= 1 ist, werden die Einträge ausgelesen.

    Die send.php Datei, die die Einträge einträgt habe ich so aufgebaut:
    <?php
    $id = $_GET["id"];
    $user = $_GET["user"];

    if(!file_exists("db/gb/count/count ($id).txt"))
    {$counter=fopen("db/gb/count/count ($id).txt", "a");}
    else
    {$counter=fopen("db/gb/count/count ($id).txt", "r+");}
    $aufruf=fgets($counter,100);
    $aufruf=$aufruf;
    rewind($counter);
    fputs($counter,$aufruf);
    fclose($counter);

    $nummer=$aufruf;

    if ($aufruf == "0")
    {
    echo "0";
    $eintrag="Name|Text (wird noch ergänzt)";

    $datei = fopen("db/gb/eintrag ($id).txt", "a");
    fwrite($datei, "\n".$eintrag);
    fclose($datei);
    }
    elseif ($aufruf >= "1")
    {
    echo "1";


    $eintrag="Name|Text (wird noch ergänzt)";

    $datei = fopen("db/gb/eintrag/eintrag ($id).txt", "a");
    fwrite($datei, "\n".$eintrag);
    fclose($datei);

    $text=file("db/gb/eintrag/eintrag ($id).txt");
    $textneu=array_shift($text);
    $handle=fopen("db/gb/eintrag/eintrag ($id).txt","w");
    foreach($text as $neudat){
    fputs($handle,$neudat);
    }
    fclose($handle);

    echo "Text eingetragen";
    }

    ?>
    Leider funktioniert das nicht
    Was mache ich falsch?[/quote]
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    König(in) Avatar von sudeki05
    Registriert seit
    04.05.2006
    Ort
    Hamburg
    Alter
    28
    Beiträge
    1.435
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Seh ich das richtig, dass du in mitten beim öffnen der count.txt eine Funktion count() aufrufst? das kann ja nicht klappen...

    Und andere Idee, lass deine Eingaben mit file() auslesen
    so z.B.:

    Code:
    $beitraege = @file&#40;"gb.log"&#41;;
    
    foreach&#40;$beitraege as $ausgabe&#41; &#123;
      $ausgabe = stripslashes&#40;$ausgabe&#41;;
      $comment = explode&#40;"|",$ausgabe&#41;;
      
      echo "
    
    \n
              <table class=\"beitrag\" cellspacing=\"0\" cellpadding=\"4\">\n
                 <tr><td>".$comment&#91;0&#93;." schrieb am ".$comment&#91;1&#93;."&#58;</td></tr>\n
                 <tr><td>".$comment&#91;2&#93;."</td></tr>\n
               </table>
    \n
           </p>";
    &#125;
    ?>
    Hier wurden in dem Falle Daten so gespeichert:

    Code:
    Pascal|09.05.2008|text
    und abgespeichert wie folgt:
    Code:
      $datei = "gb.log";
      $eintrag = $name."|".date&#40;'d.m.Y'&#41;."|".$comment;
      $fp = @fopen&#40;$datei,'a'&#41;;
      @rewind&#40;$fp&#41;;
      @fputs&#40;$fp, $eintrag."\n"&#41;;
      @fclose&#40;$fp&#41;;

    Problems with Windows? - Reboot
    Problems with UNIX? - Be Root

  3. #3
    Kinimod
    Gast

    Standard

    Super, damit ist mein Problem schonmal gelöst.
    Wie schaffe ich es jetzt noch, das die neusten Einträge oben sind?
    Derzeit stehen die neusten Einträge unten...

  4. #4
    Bandit
    Gast

    Standard

    Datei mit file einlesen, neue daten schreiben und danach das array dranhängen

  5. #5
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Besser mit readfile, das geht dann einfacher.
    Code:
    ob_start&#40;&#41;;
    readfile&#40;"datei.txt"&#41;;
    $text = ob_get_contents&#40;&#41;;
    ob_end_clean&#40;&#41;;
    Finde ich zumindest.

  6. #6
    Bandit
    Gast

    Standard

    Zitat Zitat von The User
    Besser mit readfile, das geht dann einfacher.
    Dann doch eher file_get_contents

  7. #7
    König(in) Avatar von sudeki05
    Registriert seit
    04.05.2006
    Ort
    Hamburg
    Alter
    28
    Beiträge
    1.435
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von Kinimod
    Super, damit ist mein Problem schonmal gelöst.
    Wie schaffe ich es jetzt noch, das die neusten Einträge oben sind?
    Derzeit stehen die neusten Einträge unten...
    Mit krsort($beitraege) vor der foreach schleife

    Code:
    $beitraege = @file&#40;"gb.log"&#41;;
    krsort&#40;$beitrage&#41;;
    
    foreach&#40;$beitraege as $ausgabe&#41; &#123;
      $ausgabe = stripslashes&#40;$ausgabe&#41;;
      $comment = explode&#40;"|",$ausgabe&#41;;
     
      echo "
    
    \n
              <table class=\"beitrag\" cellspacing=\"0\" cellpadding=\"4\">\n
                 <tr><td>".$comment&#91;0&#93;." schrieb am ".$comment&#91;1&#93;."&#58;</td></tr>\n
                 <tr><td>".$comment&#91;2&#93;."</td></tr>\n
               </table>
    \n
           </p>";
    &#125;
    ?>

    Problems with Windows? - Reboot
    Problems with UNIX? - Be Root

  8. #8
    Kinimod
    Gast

    Standard

    Jetzt noch eine kompliziertere Frage:

    Ich habe vor eine Art Auflistung zu erstellen.
    Sprich die User sollen angeben können wann sie wo waren (in welchen Freizeitparks).
    Dabei können sie dann das Datum angeben, wann sie da waren.

    Jetzt möchte ich die Sätze nach dem Datum ausgeben.

    Sprich, das die Datei gb.log

    Code:
    21.03.08|Phantasialand
    22.03.08|Europa Park
    19.02.08|Movie Park
    Wie folgt ausgegeben wird:

    19.02.08 Movie Park
    21.03.08 Phantasialand
    22.03.08 Europa Park

    Ist das überhaupt möglich?

  9. #9
    Forum Guru Avatar von driver
    Registriert seit
    10.04.2006
    Alter
    34
    Beiträge
    20.729
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    des ganze liegt ja in nem array, sortiere den doch
    >> die icq-schreiberlinge bitte dies hier beachten



    1679 entdeckte Gottfried Wilhelm Leibniz das Binärsystem, bei einem Gespräch mit seiner Mutter: "Ja..., Nein..., Nein..., Nein..., Ja..., Ja..., Nein..."

  10. #10
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Oh, file_get_contents.
    Danke, glaube irgendwann habe ich das mal benutzt, aber nie gemerkt, immer nur readfile gemerkt, weil beim file von php.net nurn Link dahin ist.

Ähnliche Themen

  1. Bei Eingabe überprüfen
    Von incendium im Forum HTML & CSS Forum
    Antworten: 7
    Letzter Beitrag: 11.05.2008, 21:01
  2. dyn. PHP eingabe anzeigen
    Von ThLorda im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 7
    Letzter Beitrag: 06.06.2006, 22:07
  3. Formular Eingabe
    Von kaid77777 im Forum HTML & CSS Forum
    Antworten: 1
    Letzter Beitrag: 12.04.2006, 18:10
  4. Eingabe in Textfeld speichern
    Von DonaldDuck im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 03.11.2005, 14:50
  5. tastatur eingabe counter
    Von phore im Forum Computer - Internet Forum
    Antworten: 0
    Letzter Beitrag: 05.08.2005, 10:34

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •