Ankündigung

Einklappen
Keine Ankündigung bisher.

Gästebucheinträge nach Datum sorteiren (ohne db)

Einklappen

Neue Werbung 2019

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

  • Scriptsuche Gästebucheinträge nach Datum sorteiren (ohne db)

    Hallo liebe php.de Nutzer, ich habe ein kleines Problem:

    Ich habe ein kleines Gästebuch, bloß wie kann ich (ohne Datenbank) die Einträge nach Datum sortieren, dass heißt, dass das aktuellste oben steht?

    -- Es dient als Bewertungssystem --

    Ich benutze mod_rewrite:

    bewertungen.php = bewertungen
    eintragen.php = post
    rate.php = rate


    Das Gäastebuch (bewertungen.php):

    PHP-Code:
    <h2>Bewertungen</h2>

    <p><a href="post">Eine Bewertung hinterlassen</a></p>
    <?php

    $datenbank 
    "daten.dat"$datei fopen($datenbank,"r");

    fpassthru($datei); ?>
    Der Eintrag (eintragen.php):

    PHP-Code:
    <script type="text/javascript">

    function 
    check() {

    var 
    element null;
    element document.getElementById('name');
    if (
    element.value.length <= 0)
    {
    alert('Bitte geben Sie Ihren Namen ein!');
    element.focus();
    return 
    false;
    }

    var 
    element null;
    element document.getElementById('eintrag');
    if (
    element.value.length <= 0)
     {
    alert('Bitte geben Sie Ihren Eintrag ein!');
    element.focus();
    return 
    false;
    }

    var 
    element null;
    element document.getElementById('eintrag');
    if (
    element.value.length <= 10)
     {
    alert('Sie müssen mindestens 10 Zeichen eingeben!');
    element.focus();
    return 
    false;
    }

    return 
    true;

    </script>


    <h2>Bewertung hinterlassen</h2>
    <script type="text/javascript">
    document.write("<form method=\"post\" action=\"rate\" onsubmit=\"return check()\">");
    document.write("<table>");
    document.write("<tr><td>Ihr Name:<\/td><td><input type=\"text\" name=\"name\" id=\"name\" /><\/td><\/tr>");
    document.write("<tr><td>Ihr Eintrag:<\/td><td><textarea name=\"eintrag\" rows=\"4\" cols=\"40\" id=\"eintrag\"><\/textarea><\/td><\/tr>");
    document.write("<tr><td>Ihre Bewertung<\/td><td>");
    document.write("<select name=\"bewertung\" id=\"bewertung\">");
    document.write("<option>★ (schlechteste)<\/option>");
    document.write("<option>★★<\/option>");
    document.write("<option>★★★<\/option>");
    document.write("<option >★★★★<\/option>");
    document.write("<option selected>★★★★★ (beste)<\/option>");
    document.write("<\/select>");
    document.write("<\/td><\/tr>");
    document.write("<tr><td><input type=\"submit\" name=\"Button\" value=\"Absenden\" /><\/td><\/tr>");
    document.write("<\/table>");
    document.write("<\/form>");
    </script>

    <noscript>Bitte aktivieren Sie Javascript, um eine Bewertung zu hinterlassen!</noscript> 
    Die Datei an die die Bewertung geschickt wird (rate.php):

    PHP-Code:
    <?php

    $datum
    date("d.m.Y");
    $zeit=  date("H:i");

    $daten="<fieldset><legend>".$_POST[name]."</legend>".$_POST[eintrag]."<br /><br />Bewertung: ".$_POST[bewertung]."<br />vom $datum ($zeit Uhr)</fieldset>";

    $datenbank "daten.dat";

    $datei fopen($datenbank,"a");

    fwrite($datei$daten);

    ?>


    <h2>Eintrag erfolgreich</h2>

    <a href="bewertungen">Zurück zum Gästebuch</a>
    Ich würde mich sehr über eine Antwort freuen!

    Der Yannick

  • #2
    Warum programmierst du dein Gästebuch denn in JavaScript?

    Kommentar


    • #3
      Warum in Javascript?

      Um es überprüfen zu lassen und ich habe nicht so viel Ahnung mit PHP. Hast du genau so eins in PHP - dann her damit

      Und in Javscript klappt es auch sehr gut - genau so wie ich es möchte

      Kommentar


      • #4
        Sind die Einträge nicht automatisch nach Datum sortiert wenn du die Datei mit
        PHP-Code:
        $datei fopen($datenbank,"a"); 
        beschreibst?

        Kommentar


        • #5
          Hmm...guck..die ältesten sind oben die aktuellsten unten

          wie gesagt ich kenne mich mit php nicht so aus ..

          Kommentar


          • #6
            Methode1:
            Um den neuesten Beitrag oben anzeigen zu lassen, kannst du jeden Beitrag in eine neue Zeile schreiben und die Datei dann mit PHP: file - Manual in ein Array einlesen.

            Methode2:
            Alternativ trennst du jeden neuen Beitrag durch ein Zeichen, welches in den Beiträgen nicht vorkommen darf, zum Beispiel | oder $. Dann machst du dir aus dem Dateiinhalt mit http://php.net/explode ebenfalls ein Array.

            Sortierung:
            Mit PHP: sort - Manual bzw. PHP: rsort - Manual kannst du dein Array sortieren.

            Kommentar


            • #7
              Könntest du mir netterweise ein Beispiel geben,also für mein Gästebuch ?!

              Kommentar


              • #8
                Zitat von Asipak Beitrag anzeigen
                Sind die Einträge nicht automatisch nach Datum sortiert wenn du die Datei mit
                PHP-Code:
                $datei fopen($datenbank,"a"); 
                beschreibst?
                wenn ich "a" eingebe zeigt er mir die einträge nicht an

                Kommentar


                • #9
                  wenn ich "a" eingebe zeigt er mir die einträge nicht an
                  ?? Ist ja auch die Schreibmethode. Und das machst Du oben sehr wohl. Aber da append immer ans Ende schreibt, sind die neuesten Sachen natürlich unten.

                  Kommentar


                  • #10
                    @nikosch wie muss ich es machen damit die aktuellsten oben stehen ?

                    Kommentar


                    • #11
                      2 bzw. 1 1/2 Wege hat Dir Asipak schon genannt. Alternativ kannst Du die Beiträge auch umgekehrt speichern. Das ist aber etwas komplizierter. Warum benutzt Du denn keine DB?

                      Kommentar


                      • #12
                        Datei auslesen, und dann den neuen Krams + den alten mit w wieder reinschreiben. Auslesen deshalb, weil der Inhalt der Datei dabei vollkommen überschrieben wird.

                        Kommentar


                        • #13
                          Könnte mir irgendeiner vielleicht das Resultat schreiben? Ich komme mit dem von Asipak nicht klar

                          Oder das mit dem umgekehrt speichern, kann mir das irgendeiner mal zeigen ??

                          Kommentar


                          • #14
                            Ich meine ein fertiges Gästebuch, wo das mit der Sortierung schon drin ist

                            Kommentar


                            • #15
                              [MOD: verschoben]

                              Kommentar

                              Lädt...
                              X