Ankündigung

Einklappen
Keine Ankündigung bisher.

Einträge übereinander

Einklappen

Neue Werbung 2019

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

  • Einträge übereinander

    Also Guten Morgen erstmal, ich hab vor kurzem mal angefangen mein eigenes News Skript mit PHP zu basteln, klappt alles auch eigentlich wunderbar, bis auf das die Einträge unten dran gehängt werden und ich hätte es halt gerne so das die aktuellste News immer ganz nach oben kommt. Kann mir irgendjemand helfen? :P

    PHP-Code:
    if ($fehler == "") {
        echo(
    "");
        
    $ausgabe == "";
        
    $text "Name: ";
        
    $text .= $_POST["name"];
        
    $text1 "<br />Datum: ";
        
    $text1 .= $_POST["datum"];
        
    $text2 "<br />Nachricht: ";
        
    $text2 .= $_POST["nachricht"];
        
        } else {
        echo(
    "Alle Felder Ausf&uuml;llen!");
      }
        if (
    $fehler == "") {
        
    $datei fopen("news_eintraege.php""a");
        
    fputs($datei$text);
        
    fputs($datei$text1);
        
    fputs($datei$text2);
        
    fputs($datei"<hr />");
        
    fclose($datei);
          }
        } 
    Vielen Dank schonmal im vorraus.

    Gruß Aero

  • #2
    ersetze bei fopen... das "a" durch "w+" oder "r+" (W+ legt die datei an, falls nich vorhanden, r+ nicht)

    Kommentar


    • #3
      Es gibt kein "Einfügen am Anfang" Modus für fopen().
      Entweder liest Du den gesamten bisherigen Inhalt in eine Variable ein, spulst die Datei zurück, schreibst den neuen Eintrag und dann den bisherigen Inhalt.
      Oder wenn es zuviele Daten sind, benutzt Du eine temporäre Datei.

      PHP-Code:
      <?php
      $new_content 
      rand(1000,9999) . "<br />\n"// Testdaten

      $fp fopen('news.txt''r+') or die('fopen failed');
      flock($fpLOCK_EX) or die('flock failed');

      $contents stream_get_contents($fp); // php5 Funktion
      fseek($fp0SEEK_SET);
      fwrite($fp$new_content);
      fwrite($fp$contents);
      fclose($fp);
      </span>

      Kommentar


      • #4
        so wie er es gesagt hat...in eine variable speichern...

        du machst ne while schleife mit der du erst mal alles in eine variable speicherst am ende von dem ganzen speicherst du das am besten noch mal in eine andere so dass das ganze nicht überschrieben wird sonder immer nur obendran gehängt...ich hoffe ihr versteht mich...

        also ich mein dass so...

        erst die while schleife mit der du die datensätze nach der reihe ausließt dann das hier:

        PHP-Code:
        $liste=$content
        dann schreibst du eins nach dem anderen in die variable $eintrag
        dann:
        PHP-Code:
        $content $eintrag;
        $content.=$liste
        dadurch hängst du immer den alten eintrag wieder unten an...ich hoffe duu verstehst das...
        gruß Heiko

        Kommentar


        • #5
          Zitat von David Beitrag anzeigen
          Es gibt kein "Einfügen am Anfang" Modus für fopen().
          ^^ Dann muss mein Buch wohl falsch sein... Ich werd mich gleich beschweren gehen

          Buch: PHP 4/5
          Verlag: Franzis
          Seite: 173
          => Befehl resource fopen (...)
          • r+ - Öffnet die angegebene Datei zum Lesen und Schreiben und positioniert den Dateizeiger auf den Anfang der Datei(...)

          Kommentar


          • #6
            Das stimmt schon! Wichtig dabei ist aber, dass vorher der ganze Inhalt der Datei gelöscht wird.

            Kommentar


            • #7
              ^^ echt? Gut, dass ich das jetzt auch weiß (ich hätte mich schon verwzweifel sehen )

              Kommentar


              • #8
                Zitat von Montellese Beitrag anzeigen
                Wichtig dabei ist aber, dass vorher der ganze Inhalt der Datei gelöscht wird.
                Nicht bei r+
                PHP-Code:
                <?php
                $filename 
                'php.de.test.txt';
                // Datei neu erstellen oder Inhalt löschen
                $fp fopen($filename'w');
                fwrite($fp'abcdef');
                fclose($fp);

                // Datei öffnen, wenn nicht vorhanden erstellen
                $fp fopen($filename'r+');
                fwrite($fp'ABC');
                fclose($fp);

                echo 
                file_get_contents($filename);
                ABCdef

                Kommentar


                • #9
                  Hab ich doch recht? Hmm, ich glaub ich mach gleich nen Praxistest :P ne nun mal tacheles hats grad jemand ausprobiert und kann es 100%ig sagen?

                  Kommentar


                  • #10
                    Ich schreibe es gerne nochmal, die Ausgabe des Skripts lautet ABCdef
                    <tacheles>
                    Der Anfang der Datei wurde überschrieben.
                    Die Datei wurde nicht gelöscht.
                    Es wurde nicht am Anfang eingefügt.
                    </tacheles>

                    Kommentar


                    • #11
                      Wer lesen kann ist im Vorteil *schäm*

                      Kommentar

                      Lädt...
                      X