pappandin Skrevet 23. mai 2005 Del Skrevet 23. mai 2005 Som topic sier, jeg skal lage et script der en bruker logger inn og kan endre sin "profil" som er tilgjengelig for alle. Jeg har ordnet includes så sidene der profilene publiseres er knyttet til en txt-fil for hver bruker. Spørsmålet mitt er: Hvordan endrer jeg txt-filen gjennom web-grensesnittet? Nåværende koder (med feil, vet ikke hva): index.php <form action="post.php" method="post"> <textarea name="message" id="message"></textarea><br> </td></tr> <tr><td> <INPUT TYPE="hidden" NAME="returnurl" VALUE="index.php"> <input type="submit" name="Submit" value="Send"> <input type="reset" name="Reset" value="Reset"> </form> post.php <html><head><link rel="stylesheet" href="../../style2.css" type="text/css"></head> Profilen er endret. <a href="index.php">tilbake</a><? include("config.php"); $profil = stripslashes($profil); $wrap = intval((35)/($textsize-2))+1; $profil = wordwrap($profil, $wrap, ' '); $comfile = file($data);if ($profil != "") {$df = fopen ($data, "w");$profil = stripslashes($profil);fwrite ($df, " <table> <tr height='100%'> <td><b>Profil</td> <td>$profil</td> </tr> </table> <br> ");for ($i = 0; $i < $comments; $i++) {fwrite ($df, $comfile[$i]);}fclose($df);} ?> </html> config.php <?php //where shout data is stored must be CHOMDED to 777 $data = "omperson.txt"; //max length of input $length = 999999999999999999; //messages to show $comments = 9999999999999999; //text size $textsize = 1; ?> ser nå at det er en annen feil her også. Man legger bare til ny info i tillegg til den gamle. Trenger noe som fjerner alt tidligere innhold i "omperson.txt" før den endrer til det nye innholdet i textarea.. Lenke til kommentar
Gilbert Skrevet 23. mai 2005 Del Skrevet 23. mai 2005 w+ setter pekeren på begynnelsen av dokumentet tror jeg... dobbeltsjekk med php.net :-) Lenke til kommentar
kakkle Skrevet 23. mai 2005 Del Skrevet 23. mai 2005 (endret) du kan fint bruke "w" forå skrive over et dokument, men det du gjør her, er jo at du først leser innholdet i filen inn i arrayet $comfile, så legger du til det nye, også legger du inn hver linje som var i det gamle dokumentet... Derfor får du det gamle i tillegg.. Dersom du ikke skal bytte ut hele filen med nytt innhold, bør de sette inn noen kommentar-tags som sier hvor forskjellige ting starter.. F.eks <!-- Profil Start --> og <!-- Profil Slutt --> og hvis du har noen kommentarer under der igjen, som skal legges til (virker sånn), så kan du f.eks bruke <!-- komm start --> og <!-- komm slutt -->, også bytter du bare ut teksten mellom start og slutt av profil med den nye profilen, og skriver hele teksten på nytt... Tips: For å lagre hele innholdet i en variabel, kan du bruke: implode("", file($data)); Så kan du bare erstatte alt mellom profil start og profil slutt En annen ting; Du siter at det er en tekstfil pr bruker... Men ifølge koden, så henter du alltid inn filen omperson.txt. stemmer det eller ? Er det kanskje litt kode som ikke vises her... UFF Seint ! Må få lagt meg Endret 23. mai 2005 av kakkle Lenke til kommentar
pappandin Skrevet 24. mai 2005 Forfatter Del Skrevet 24. mai 2005 En annen ting; Du siter at det er en tekstfil pr bruker... Men ifølge koden, så henter du alltid inn filen omperson.txt. stemmer det eller ? Er det kanskje litt kode som ikke vises her... stemmer detta.. men har en tilsvarende side for hver bruker.. gjør det så enkelt at jeg kan klare det Lenke til kommentar
pappandin Skrevet 24. mai 2005 Forfatter Del Skrevet 24. mai 2005 har du et konkret eksempel for lagring av $data i "implode" med tekstfil navn og så konkret som mulig? Lenke til kommentar
kakkle Skrevet 24. mai 2005 Del Skrevet 24. mai 2005 (endret) Så du skal ikke erstatte hele filen, er det slik å forstå ? Du vil bare endre deler av filen ? Her er et konkret eksempel for lagring av $data (filen omperson.txt) i en variabel: $filelines = file($data); // Her er $data="omperson.txt" iflg config filen din $helefilen = implode ("", $filelines); Dersom du vil se litt mer på filer, og lesing fra dem, og endring av filer, så kan du kikke på følgende sider på php.net: http://www.php.net/filesystem http://www.php.net/file http://www.php.net/fopen http://www.php.net/fputs Andre sider som er nyttige: http://www.php.net/array http://www.php.net/implode http://www.php.net/explode http://www.php.net/str_replace http://www.php.net/ereg_replace for å ha med noen... Det er masse å lære på php.net, så jeg anbefaler deg å lese litt der. Se også på kommentarene som er under funksjonsbeskrivelse. Kan hende det ligger en funksjon for akkurat det du leter etter der. EDIT: Tok med link til Filesystem reference også, og slettet den siste file linken... /KMS Endret 24. mai 2005 av kakkle Lenke til kommentar
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å