Dave: gästebuch: neue datei erstellen

Hallo,
weiss jemand von euch, was ich in mein gästebuchscript in php schreiben muss, dass er bei 10 einträgen eine neue Datei anlegt, in die er ab sofort schreibt? mit dem zählen hab ich das schon raus. ich schreibs einfach mal auf:

...datei öffnen und inhalt in $alt speichern

$zaehlen = substr_count($alt, "<!-- eintrag -->");

if ($zaehlen == "10") {
#  -und jetzt?-
}

bei jedem eintrag steht halt noch debei dass er immer
<!-- eintrag --> reinschreiben soll. Danke an alle Antworter

DAve

  1. Hallo,

    weiss jemand von euch, was ich in mein gästebuchscript in php schreiben muss, dass er bei 10 einträgen eine neue Datei anlegt, in die er ab sofort schreibt? mit dem zählen hab ich das schon raus. ich schreibs einfach mal auf:

    Was _genau_ willst Du denn jetzt machen, wenn 10 Einträge drinnen sind?

    a) Eine _andere_ Datei mit _anderem_ Namen anlegen und es da reinschreiben?
    b) _Diese_ Datei umbenennen und dann den alten Namen weiterverwenden?

    Und vorallem: Wieso willst Du das machen?

    Grüße,

    Christian

    1. Und vorallem: Wieso willst Du das machen?

      Genau, warum?
      Weil, um das gesamte GB anzuzeigen, musst du doch alle Dateien nacheinander auslesen. Stell dir mal vor was das für ein (unnützer) Aufwand wäre...
      CU
      http://www.yubb.de

      1. Und vorallem: Wieso willst Du das machen?

        Weil das Gästebuch sonst zu lang für eine Seite wird, wenn es beispielsweise schon 50 Einträge wären.

        Und ich möchte, dass die alte Datei umbenannt wird, und auf die anderen Seiten unten ein Link drangehängt wird, damit man die alten noch aufrufen kann.

        Weil, um das gesamte GB anzuzeigen, musst du doch alle Dateien nacheinander auslesen. Stell dir mal vor was das für ein (unnützer) Aufwand wäre...

        Hm. Aber nur wenn die User die letzten Einträge auch sehen _wollen_. So werden Sie nicht zu unnützen Ladezeiten gezwungen. Also: Wisst Ihr jetzt wies geht oder nicht?

        Danke
        Dave

        1. Also: Wisst Ihr jetzt wies geht oder nicht?

          Wirst du jetzt trotzig?!

          Also: Du brauchst zum Zwecke der Begrenzung weniger immer wieder eine neue Datei, sondern eher eine Auswahlbeschränkung.
          Du kannst die Auswahl so begrenzen, dass du eine Schleife durchlaufen lässt, der Art

          for(i:=1;i<10;i++) {
          Datei lesen, Ausgabe
          }

          In MYSQL heisst der Befehl LIMIT 0,10, aber in Dateien bin ich nicht so firm...

          CU
          http://www.yubb.de

          1. Wirst du jetzt trotzig?!

            Sorry.

            ...

            Ich will doch einfach nur dass eine neue datei erstellt wird, auf die dann zugegriffen wird, und dass auf jede neue ein link auf alle alten steht. Mehr nicht!

            Danke
            Dave

            1. du musst da anders rangehen.

              du musst dir überlegen wie du die einzelnen einträge trennbar abspeichern kannst in _nur_ einer datei. Dann ließt du diese Datei aus, und limitierst das ganze wie dave schon sagte.

              beispielweise du gibst jeden eintrag nur eine zeile. bsp;

              paul#hallo leute, wie gehts.
              edmund#nett schlecht
              johannes#tag<br /> ihr.

              jetzt kannst du die datei mit $zeilen = file('datei.dat');  in einem array aus zeilen lesen.

              dann gibst du diese Zeilen wieder aus.

              for($i = $startwert ; $i < $endwert ; $i++){
                   $eintrag = explode('#',$zeile[$i];   // teil die Zeile mit der Zahlvariable $i an dem punkt '#' in glieder eines arrays '$eintrag'

              print "<h1>Name: $eintrag[0]</h1> <!-- Überschrift des Eintrags -->
                          <p>
                          $eintrag[1] <!-- Text des Eintrags -->
                          </p>";
              }

              zum Blättern der Seiten mußt du immer nur per link den $startwert und $endwert schicken. bsp;

              <a href="<?=$PHP_SELF?>?startwert=0&endwert=100">ersten 100 Einträge anzeigen</a>

              damit kannste jetzt rumspielen.

              1. Dann ließt du diese Datei aus, und limitierst das ganze wie dave schon sagte.

                Nur der Richtigkeit wegen: das war ich ;)

              2. Vielen recht herzlichen dank.

                Jetzt nur noch eine letzte klitzekleine frage: wie kann ich das denn automatisch machen, dass je nachdem wie viele Einträge drin sind, unten entsprechen oft die links stehen +10 / -10 und die vorherigen/nächsten 10 Einträge anzeigen? Also z.B. bei 34 Einträgen auf Seite 1 unten: +10, auf Seite 2 unten -10 / +10, auf Seite 3 unten -10 / +10, auf Seite 4 unten -10. Da muss man doch irgendwie dynamisch das Ziel der Links erzeugen. wie mach ich das?

                Hoffe ihr könnt mir nochmal helfen
                Dave

                1. Hallo,

                  Jetzt nur noch eine letzte klitzekleine frage: wie kann ich das denn automatisch machen, dass je nachdem wie viele Einträge drin sind, unten entsprechen oft die links stehen +10 / -10 und die vorherigen/nächsten 10 Einträge anzeigen? Also z.B. bei 34 Einträgen auf Seite 1 unten: +10, auf Seite 2 unten -10 / +10, auf Seite 3 unten -10 / +10, auf Seite 4 unten -10. Da muss man doch irgendwie dynamisch das Ziel der Links erzeugen. wie mach ich das?

                  mal angenommen, Dein Script wird mit folgenden Parametern aufgerufen:

                  script.php?ab=50&anz=10

                  dann weißt du die aktuelle "Position" und kannst die Anzahl addieren/subtrahieren.

                  Bsp:

                  // script.php?ab=...&anz=...

                  // ausgabe der Einträge

                  $nr_zurueck = $_GET["ab"] - $_GET["anz"];
                  $nr_vor = $_GET["ab"] + $_GET["anz"];
                  echo "<a href="".$_SERVER["PHP_SELF"]."?ab=".$nr_zurueck."anz=".$_GET["anz"]."">Zurück</a>\n";
                  echo "<a href="".$_SERVER["PHP_SELF"]."?ab=".$nr_vor."anz=".$_GET["anz"]."">Vor</a>\n";

                  Grüße,

                  Christian