![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Gast
Beiträge: n/a
|
So also ich habe mir selbst ein GB gebastelt, ja zugegeben es war ein tut. aber ich habe mir noch einige gedanken gemacht und bin zum schluss gekommen das ich das einfach nicht kann!
also es geht darum das bei mir der neue Eintrag immer unten angehängt wird, wie das auch in diesem tutorial (http://forum.developers-guide.net/showthread.php?t=47 ) der fall ist. aber das ist ja nicht der sinn der sache das der neuste beitrag immer an unterster stelle steht! oder? ich arbeite wie hier auch mit einer textdatei! hier ist mal der code meines Gbuches: PHP-Code:
PHP-Code:
kann mir da jemand einen kleinen Tip geben? mfg bambid Geändert von Ben (01.03.2006 um 16:49 Uhr). |
|
|
|
Nach oben #2 |
|
Projektleiter
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.235
|
ok, der Trick an der Sache ist, dass es bei Textdateien nicht so einfach ist die Reihenfolge für die Ausgabe zu ändern. Bei eine MySQL-Abfrage kann man einfach ein ORDER BY `blub` ASC bzw. DESC benutzen....
So - und nun zu dem Trick. Die Textdatei wird - so ist es nunmal - zeilenweise von oben nach unten ausgelesen und ausgegeben. Wenn nun aber beim hineinschreiben die neuen Beiträge nicht an das Ende angehängt werden, sondern an den Anfang, so hat man beim auslesen auch den neuesten zuerst! *taraaa* Alles klar soweit? Du musst also lediglich beim hineinschreiben der neuen Daten in die Datei die selbige vorher komplett einlesen. Dann löscht du den Inhalt der Datei und bastelst den neuen Eintrag mit den alten zusammen und schreibst alles in die Datei rein. Fertig! Versuch das mal! Wenn du Probleme hast, das umzusetzen, dann melde dich nochmal! Ich will dir hier ja nicht alles vorkauen!
__________________
Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! Geändert von Ben (01.03.2006 um 16:50 Uhr). |
|
|
|
|
|
Nach oben #3 |
|
Gast
Beiträge: n/a
|
Also das tönt mir auch sehr logisch und ich war auch schon dabei die datei auszulesen aber leider habe ich da irgend einen überlegungsfehler gemacht!
also die datei kann ich so wie ich das irgendwo gelesen habe mit file ("gaestebuch.txt") auslesen. und das wird ja dann ein array also habe ich mir gedacht ich mach das so $lesen = file ("gaestebuch.txt"); $datei =fopen("gaestebuch.txt","r+"); fputs ($eintrag,$lesen); fclose($datei); aber leider funkte das nicht so ganz wie ich mir das vorgestellt hatte! ich denke das diese überlegung auch etwas zu weit hergeholt oder einfach zu einfach ist! oder wie? danke für deine hilfe! mfg bambid Geändert von Ben (01.03.2006 um 16:50 Uhr). |
|
|
|
Nach oben #4 | ||
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
|
Hallo,
Zitat:
Also, erstmal der Schnipsel: PHP-Code:
Was passiert da .. hm. Wie Du siehst habe ich die Datei in zwei Teile auseinandergenommen. Einen if-Zweig und einen else-Zweig. Außerhalb dieser beiden Zweige gebe ich den Dateinamen der Datei an, um die es sich hier dreht und zusätzlich lese ich diese Datei mit der Funktion file_get_contents() aus. Damit stehen diese Variablen in beiden Zweigen zur Verfügung. Jetzt aber los. Was bedeuten diese Zweige? Man könnte es so aussprechen: Zitat:
Wir erhalten also die Anzeige eines Formulars und der Überschrift "Inhalt der Textdatei". Die Datei ist aber leer, demnach steht da noch nix *g* Das ist der Teil hier: PHP-Code:
Jut. Damit senden wir jetzt einen POST-Request an den Server und somit kommen wir beim Neuladen in den if-Zweig. Also hier das: PHP-Code:
Um das Prinzip aber mal klarzustellen kannst Du diese Zeile hier: Code:
$input = sprintf("%s\n", $_POST['test']);
Code:
$input = $_POST['test'] . "\n"; Beachte, dass Du \n in Anführungsstriche " und nicht in Hochkommata ' schreibst. Nur bei Anführungsstrichen wird das richtig interpretiert So. Weiter. Jetzt wollen wir ja den neuen Eintrag vorne anhängen, ne? gut. Dann machen wir das doch einfach mal. Der oben ausgelesene Inhalt der Datei $content wird also ein bisschen erweitert: Code:
$content = $input . $content; So. $content enthält jetzt den alten Inhalt zzgl. der Eingabe. Wir speichern das jetzt einfach in der Datei ab. Wenn Du PHP 5 zur Verfügung hast, dann schreibst Du einfach Code:
file_put_contents($filename, $content); Wenn Du das nicht machen kannst, weil Du noch PHP 4.3.* nutzt, dann nutze doch einfach diese Funktion hier: Wenn Du diese dort beschriebenen Funktionen zum lesen und schreiben verwendest, dann ist das eigentlich optimal, weil Du dann alle Fehlerfälle überprüfst Soderle. Ja. Das war es ja eigentlich schon. Wenn Du das jetzt testest, dann sollte das eigentlich funktionieren. Wenn Du Fragen hast ... erstmal noch 'ne halbe Stunde drüber nachdenken und das Manual durchforsten: Und dann kannst Du ganz gerne fragen Grüße Ben.
__________________
Mehr TuS Koblenz geht nicht ... Aktuell ... - Neue Gegner für die TuS: 1.FC Nürnberg - 5 neue Gegner 2008/09 - Informationsveranstaltung für Mitglieder - Förderkasse füllt sich - B-Jugend Rheinlandpokalfinale terminiert - A-Jugend I gewinnt Rheinlandpokal Geändert von Ben (28.10.2005 um 12:17 Uhr). |
||
|
|
|
|
|
Nach oben #5 | |
|
Projektleiter
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.235
|
Zitat:
__________________
Umfragen: Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Danke! |
|
|
|
|
|
|
Nach oben #7 |
|
Gast
Beiträge: n/a
|
wie kann ich testen ob ich php 5 oder 4.3 habe? bei mir klappt das nicht so richtig aber ich denke auch das ich das falsch interpretiert habe?
Ich weiss nicht so ganz wo das ich das in meinem skript einfügen muss und ich denke mir das ich jetzt lange genug gesucht habe das du mir bitte einen weiteren Tip geben kannst! also ich habe es versucht mit kombinationen von deinem und meinem script und dann habe ich versucht deinen Code zu nehamen und das habe ich dann auch nicht so ganz hin bekommen! und was bei mir noch anderst ist als das was du mir da gegeben hasst, nur dass wir uns richtig verstehen, ich habe eine eingabe.php, eine gaestebuch.txt und dann man das ganze in der anschauen.php sehen können! wie ich diese texte auslese das weiss ich mittlerweilen! mein problem ist nur noch das ich den text geordnet also von oben nach unten in das .txt file bekomme! ich versuche es schon seit Tagen und bekomme es einfach nicht hin! ich bin nicht so schwierig im umgang mit programiersprachen aber das schafft mich noch ganz! ich wäre froh wenn du mir einen weiteren tip geben könntest! mfg bambid |
|
|
|
Nach oben #8 | ||||
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
|
Hi,
Zitat:
Du schreibst Dir eine .php-Datei mit folgendem Inhalt: PHP-Code:
Alternativ kannst Du auch einfach: PHP-Code:
Aber ersteres ist schon etwas eleganter, weil Du dort eben viel mehr ablesen kannst. Beachte bitte, dass für Dich wichtig ist, was Dir dein Hoster anbietet .. nicht, was Du lokal auf Deinem Rechner für eine Version hast Zitat:
Diese Datei lädst Du dann auf den Server, ob lokal oder online ist da erstmal wurscht, und rufst sie auf. Dann spielst Du einfach mal rum. Teste das Script mal Zitat:
Das sind in meinem Script tatsächlich nur vier Zeilen: 1. Inhalt auslesen: PHP-Code:
PHP-Code:
PHP-Code:
4. Inhalt wieder in die Datei reinschreiben, sonst bringt es ja nix PHP-Code:
Zitat:
Viel Erfolg. Passt schon. Grüße Ben.
__________________
Mehr TuS Koblenz geht nicht ... Aktuell ... - Neue Gegner für die TuS: 1.FC Nürnberg - 5 neue Gegner 2008/09 - Informationsveranstaltung für Mitglieder - Förderkasse füllt sich - B-Jugend Rheinlandpokalfinale terminiert - A-Jugend I gewinnt Rheinlandpokal Geändert von Ben (28.10.2005 um 12:18 Uhr). |
||||
|
|
|
|
|
Nach oben #9 |
|
Gast
Beiträge: n/a
|
also erstmal danke für den tip so habe ich mir viel mühe gespart! denn der server hatte nur version 4.3 das muss ich ändern lassen! jetzt aber klappt das auf meinem anderen Server der ja php 5 tauglich ist auch noch nicht! ich habe hier mal den aktuellen code aber das klappt nicht so ganz! Ich habe da sicher was falsches gemacht! aber leider finde ich den fehler nicht! was soll eigentlich das $SERVER ()??? PHP-Code:
|