bosannes Skrevet 20. april 2005 Skrevet 20. april 2005 Har laget meg en liten gjestebok i php og alt ser ut til å funke, men jeg har ETT problem. Jeg bruker fopen($filename, "a") for å åpne fila for skriving, men da havner nye poster hele tiden nederst. Hvordan kan jeg få nye poster til å skrives først i fila uten at jeg mister eldre poster? Tror jeg har prøvd alle modusene.
toss Skrevet 20. april 2005 Skrevet 20. april 2005 prøv r+.. 'r+' Open for reading and writing; place the file pointer at the beginning of the file. eller w+ (dersom scriptet skal opprette filen om den ikke finnes..) 'w+' Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist' date=' attempt to create it. http://no.php.net/manual/en/function.fopen.php hvis ikke det funker vet ikke jeg..
Gilbert Skrevet 20. april 2005 Skrevet 20. april 2005 I verste fall får du laste inn hele filen og lagre nytt innhold i den (nytt innhold = ny linje + gammelt innhold)
bosannes Skrevet 20. april 2005 Forfatter Skrevet 20. april 2005 (endret) prøv r+.. 'r+' Open for reading and writing; place the file pointer at the beginning of the file. eller w+ (dersom scriptet skal opprette filen om den ikke finnes..) 'w+' Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist' date=' attempt to create it. http://no.php.net/manual/en/function.fopen.php hvis ikke det funker vet ikke jeg.. Har prøvd r+, men det den sletter fortsatt starten av dokumentet (uten at jeg skjønner helt hvordan den skjønner hvor mye den skal fjerne) w+ sletter alt tidligere innhold Endret 20. april 2005 av bosannes
bosannes Skrevet 20. april 2005 Forfatter Skrevet 20. april 2005 I verste fall får du laste inn hele filen og lagre nytt innhold i den (nytt innhold = ny linje + gammelt innhold) Håpet å unngå det :\
Gilbert Skrevet 20. april 2005 Skrevet 20. april 2005 (endret) **dobbel - dumme dumme trådløse nettverk!** Endret 20. april 2005 av fjartan
dabear Skrevet 20. april 2005 Skrevet 20. april 2005 (endret) hva med å lagre alt som et serlized() array i ei tekstfil? da unserializer du + array_reverse, og vips har du det nyeste først. *kanskje ikke noe bedre løysing *, må jo fortsatt åpne fila,slette den, og skrive nyy innhodl til den Endret 20. april 2005 av dabear
bosannes Skrevet 20. april 2005 Forfatter Skrevet 20. april 2005 <?php $filename = 'gjester.txt'; // angir hvor listene skal lagres $handle = fopen($filename, "w+"); // apner fila i variabelen $handle $navn = strip_tags($_POST['navn']); // navn fra formen lagres i $navn. strip_tags sorger for a fjerne eventuell kode $epost = strip_tags($_POST['epost']); // epost fra formen lagres i $epost. strip_tags sorger for a fjerne eventuell kode $melding = nl2br(strip_tags($_POST['melding'])); // melding fra formen lagres i $melding. strip_tags sorger for a fjerne eventuell kode og nl2br lager <br> der brukeren har trykket enter (new line) $navnf = "<div class=\"newsstory\" style=\"border: 1px #c00 solid; padding: 5px;\"><a href=\"mailto:$epost\" alt=\"Send en mail til $navn\">$navn</a><br>"; // Gjor navnet om til en hyperlink til e-post adressen og anngir et nytt html linjeskift $meldingf = "$melding \n </div> \n "; fwrite($handle, $navnf); fwrite($handle, $epostf); fwrite($handle, $meldingf); fclose($handle) ?>
bosannes Skrevet 22. april 2005 Forfatter Skrevet 22. april 2005 (endret) Jeg valgte løsningen med å skrive alt på nytt, så nå ser koden slik ut: <?php $filename = 'gjester.txt'; // angir hvor listene skal lagres $handle = fopen($filename, "w+"); // apner fila i variabelen $handle $les = fread($handle, filesize($filename)); $navn = strip_tags($_POST['navn']); // navn fra formen lagres i $navn. strip_tags sorger for a fjerne eventuell kode $epost = strip_tags($_POST['epost']); // epost fra formen lagres i $epost. strip_tags sorger for a fjerne eventuell kode $melding = nl2br(strip_tags($_POST['melding'])); // melding fra formen lagres i $melding. strip_tags sorger for a fjerne eventuell kode og nl2br lager <br> der brukeren har trykket enter (new line) $navnf = "<div class=\"newsstory\" style=\"border: 1px #c00 solid; padding: 5px;\"><a href=\"mailto:$epost\" alt=\"Send en mail til $navn\">$navn</a><br>"; // Gjor navnet om til en hyperlink til e-post adressen og anngir et nytt html linjeskift $meldingf = "$melding \n </div> \n "; fwrite($handle, $navnf); fwrite($handle, $epostf); fwrite($handle, $meldingf); fwrite($handle, $les); fclose($handle) ?> Får denne meldingen til tross for at gjester.txt ikke er tom :\ Warning: fread(): Length parameter must be greater than 0. in X:\X\X\X\gjest\write.php on line 7 Endret 23. april 2005 av bosannes
bosannes Skrevet 22. april 2005 Forfatter Skrevet 22. april 2005 (endret) Gjorde like greit slik: <?php $filename = 'gjester.txt'; // angir hvor listene skal lagres $handle = fopen($filename, "rb"); // apner fila i variabelen $handle $les = fread($handle, filesize($filename)); // Laster filas innhold i $les fclose($handle); $handle = fopen($filename, "wb"); // apner fila i variabelen $handle $navn = strip_tags($_POST['navn']); // navn fra formen lagres i $navn. strip_tags sorger for a fjerne eventuell kode osv........ Tar fortsatt imot forslag på hvordan det egentlig skal gjøres PS: Poster jeg mer nå, så kommer satan og tar meg. Detta var post 665 Endret 22. april 2005 av bosannes
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå