Kenneth Dammyr Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 Hei Jeg har "laget"(hentet fra andre er vel riktigere å si) en side hvor jeg kan laste opp en fil og når jeg trykker upload og dermed kommer til en annen side så skriver den nye siden en liten tekst til en fil på servern. ganske enkelt prinsipp. Men nå er den litt i vranglune. Hver gang jeg har valgt en fil for upload og trykker "upload" så skrives det dobbelt til fila på servern. Det har jeg jo aldri bedt om! Her er koden som starter opplastingen: <form action="barn.php" method="post" enctype="multipart/form-data"> <b>Barn:</b><input type="file" name="upfil" /> <input type="submit" value="upload" /> </form> Her har jeg fjernet den som tar imot, men viser kun den delen som skriver til fil: <?php $myFile = "barnedata.php"; $fh = fopen($myFile, 'a') or die("can't open file"); $stringData = "New Stuff 12\n"; fwrite($fh, $stringData); $stringData = "New Stuff 34\n"; fwrite($fh, $stringData); fclose($fh);; Altså blir resultatet i barnedata.php: New Stuff 12 New Stuff 35 New Stuff 12 New Stuff 35 Trenger dere å vite mer så si ifra! Hadde vært fryktelig fint med litt hjelp her nå Lenke til kommentar
Gjest Slettet+6132 Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 (endret) For meg ser det ut som om fila som skriver til fila blir requesta to ganger. EDIT: Ikke spør meg hvorfor Endret 24. desember 2005 av Slettet+6132 Lenke til kommentar
PT Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 En stund siden jeg har hold på med flatfiler på denne måten, men jeg mener å huske at det blir noe tull hvis du bruker fwrite() to ganger med samme fopen(). Hvorfor skriver du til filen to ganger egentlig? Kan du ikke bare gjøre noe slikt? <?php $myFile = "barnedata.php"; $fh = fopen($myFile, 'a') or die("can't open file"); $stringData = "New Stuff 12\n"; $stringData .= "New Stuff 34\n"; fwrite($fh, $stringData); fclose($fh); ?> Lenke til kommentar
Kenneth Dammyr Skrevet 24. desember 2005 Forfatter Rapporter Del Skrevet 24. desember 2005 Gjør jeg det slik vil den bare skrive siste linja(New Stuff 34). Jeg har hentet dette fra denne websiden. Og det fungerer jo fint så lenge jeg ikke laster opp en fil samtidig. Men når jeg samtidig skal laste opp en fil så vil den altså skrive dobbelt. Det har altså en sammenheng med filopplastingen. Kanskje den blir fortstyrret på en måte av opplastings-scriptet? Her er en link til scriptet jeg har brukt for å laste opp filen. Fwrite ligger over dette i min "utgave". Lenke til kommentar
PT Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 (endret) Gjør jeg det slik vil den bare skrive siste linja(New Stuff 34).Hvis du ser godt etter, så plasserte jeg et punktum før =-tegnet på den andre $stringData-variabelen $stringData = "New Stuff 12\n";$stringData .= "New Stuff 34\n"; Det betyr at $stringData skal legge til "New Stuff 34" etter "New Stuff 12". Orker ikke feilsøke noe nå, men at problemet har røtter i uploadscriptet er ikke umulig. Endret 24. desember 2005 av PT Lenke til kommentar
Kenneth Dammyr Skrevet 24. desember 2005 Forfatter Rapporter Del Skrevet 24. desember 2005 Det funker ikke dessverre Men la oss si at upload-scriptet og write kolliderer. Finnes det ikke en enkel måte å skille de fra hverandre? Jeg har prøvd å lukke dem inne i hver sin <?php>-tag, men det gikk ikke. Lenke til kommentar
dabear Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 Du åpner fila i appendmodu, første gang skriver du til fila, og neste gang legger du til innhold på slutten av fila. Se http://no.php.net/fopen for forskjellige modes Lenke til kommentar
lilminime Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 Dette er kanskje litt OffTopic, men drit i flatfiler det er så sinnsykt lame.. Bruk heller en database som feks. MySQL.. Hvorfor skal du bruke flatfiler? Er jo det værste shittn som er under php.. En kompis av meg bruker det, fyy for noe greier, hater det >_< Gå over til database! Lenke til kommentar
dabear Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 (endret) different people, different opinions. Mener du at databaser er enklere enn flatfiler, bør du ikke uttale deg, det viser desverre hvor lite du kan. Å håndtere arrays er minst like enkelt som databasespørringer. Til å skrive til fil, bruker du da serialize og leser det inn igjen med unserialize. Databaser bruker du først når du har store scripts med mye (meta)data som skal søkes i og/eller indekseres. Endret 24. desember 2005 av dabear Lenke til kommentar
lilminime Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 Sa vell ikke at det var enklere med databaser enn flatfiler eller gjorde jeg kanksje? Mulig det er jeg som er begynnt og bli litt sterkt beruset. Men vis jeg er litt bevist mener jeg og se at jeg aldrig skriver at det er lettere bare at flatfiler er noe dritt.. Dette fordi det er svært uoversiktlig og rotete. Vill man ha system på noe er det database som er tha shiat! Lenke til kommentar
dabear Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 Greit, du sa kanskje ikke dét, men da får du forklare hvorfor flatfiler er «noe dritt». Viss du bruker serialize/unserialize, vil ikke fila være uoversiktelig eller rotete på noen måte Lenke til kommentar
fredeil Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 Flat filer er greit til småting som dette mener jeg. Lenke til kommentar
Gjest Slettet+6132 Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 (endret) Dette er kanskje litt OffTopic, men drit i flatfiler det er så sinnsykt lame..Bruk heller en database som feks. MySQL.. Hvorfor skal du bruke flatfiler? Er jo det værste shittn som er under php.. En kompis av meg bruker det, fyy for noe greier, hater det >_< Gå over til database! 5333588[/snapback] Når jeg leser ditt innlegg så får jeg en oppfattning om at du ikke helt vet hva du snakker om. Om du skal ha en liten, privat hjemmeside med en besøksteller er det mye enklere med en flatfil hvor det legges til et nytt tall for hver side som åpnes, enn at du skal sette opp en egen database kun for å legge til et tall hver gang noen åpner en annen del av siden. Databaser kommer først på tanken når du skal håndtere større mengder data hvor du trenger mulighet for å kunne redigere/slette/søke på en enkel måte. God jul! Endret 24. desember 2005 av Slettet+6132 Lenke til kommentar
Kenneth Dammyr Skrevet 24. desember 2005 Forfatter Rapporter Del Skrevet 24. desember 2005 Hehe. Skulle gjerne brukt databaser jeg, men på grunn av jeg ikke kan mer enn ca. ingenting av php så tror jeg neppe at jeg skal bevege med over på databaser. (Selvom jeg visstnok har ubegrensa databaser på webhotellet...) Uansett, når jeg har det i en slik fil som dette forstår jeg mye bedre hva som skjer. Jeg får vondt i magen bare av å titte i phpadmin... Uansett, jeg har fortsatt en side som skriver dobbelt Lenke til kommentar
dabear Skrevet 24. desember 2005 Rapporter Del Skrevet 24. desember 2005 fopen($myFile, 'w') For hver gang scriptet blir kjørt, åpner du fila, sletter innholdet og skriver nytt innhold Lenke til kommentar
Kenneth Dammyr Skrevet 24. desember 2005 Forfatter Rapporter Del Skrevet 24. desember 2005 fopen($myFile, 'w') For hver gang scriptet blir kjørt, åpner du fila, sletter innholdet og skriver nytt innhold 5334054[/snapback] Men jeg vil jo ikke det. Da mister jeg jo gammel data. Lenke til kommentar
fredeil Skrevet 25. desember 2005 Rapporter Del Skrevet 25. desember 2005 (endret) Skjønner ikke dette her? Det skal vel funke med <?php $logFile = "loggfilen.php"; if (file_exists($logFile)) { if (!is_writeable($logFile)) { die("$logFile er ikke skrivbar!"); } $open = fopen($logFile, "a"); fwrite($open,"$string1|$string2|$string3 \n"); fclose($open); } else { echo "Filen $logFile finnes ikke!<br><br>"; } ?> Det bruker jeg, og det funker utmerket edit: La inn ny kode! Endret 25. desember 2005 av fredeil Lenke til kommentar
Kenneth Dammyr Skrevet 25. desember 2005 Forfatter Rapporter Del Skrevet 25. desember 2005 Hvis det var slik du mente: $myFile = "barnedata.txt"; $open = fopen($myFile, "a"); $string1 = "Bobby Bopper"; $string2 = "Bobbbbbbby Bopper"; $string3 = "Boy Bopper"; fwrite($open,"$string1|$string2|$string3 \n"); fclose($ut); ...Så fungerte ikke det. Samme resultat. EDIT: Basert på den første "versjonen" din... Lenke til kommentar
PT Skrevet 25. desember 2005 Rapporter Del Skrevet 25. desember 2005 Hvis det var slik du mente:*kode* ...Så fungerte ikke det. Samme resultat. EDIT: Basert på den første "versjonen" din... 5334395[/snapback] Gir den koden det samme resultatet som før? Tror vi må få se hele koden din Lenke til kommentar
fredeil Skrevet 25. desember 2005 Rapporter Del Skrevet 25. desember 2005 (endret) Må være noe lureri som oppdaterer filen og skriver 2 ganger. ! Show us ! Endret 25. desember 2005 av fredeil 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å