Avatar billede prinsfelix Nybegynder
22. juli 2003 - 17:36 Der er 13 kommentarer

Oprette og skrive i en tekstfil - som gemmes på PC

Hej

Jeg skal have mulighed for at oprette en tekstfil vha. PHP. Når den formular på en HTML-side er blevt udfyldt gemmes dataene i en MySQL-database. På samme til vil jeg have, at de indtastede data skal gemmes i en txt-fil på min egen PC (altså lokalt).

Men hvordan opretter jeg denne tekstfil - får genereret et navn på filen og får lagt data ned i filen og gemt den?

Jeg har ikke haft held med at søge eksempler på nettet og håber derfor der er nogle der kan hjælpe mig her!

Hvis der er konkrete eksempler på kode der fungerer vil jeg meget gerne se det.

Pris Felix
Avatar billede sukos Juniormester
22. juli 2003 - 17:45 #1
Det er vel din egen server?
Ellers skal du til at ha' fat i et downloadscript også.

Og ellers, for skrivning til en fil så brug fopen()
http://dk.php.net/manual/en/function.fopen.php
Avatar billede sukos Juniormester
22. juli 2003 - 17:48 #2
<?php
$filnavn = "navn.txt";
$str = "Her er noget tekst som skal gemmes";

$fp = fopen($filnavn, 'w+');
if ($fp) {
fputs($fp, $str);
fclose($fp);
    }
?>
Avatar billede TRoXa Novice
22. juli 2003 - 17:55 #3
jeg tror han mener, at han vil skrive til en fil på folks computere
Avatar billede prinsfelix Nybegynder
22. juli 2003 - 18:12 #4
Hej

Jeg har forsøgt at kigge på de eksempler der findes på php.net - dog uden held. Det eksempel du giver Sukos kan jeg heller ikke få til at fungere. Jeg får følgende fejlbesked:

Warning: Unable to access navn.txt in /kunder/nordestgaarddk/htdocs/test3.php on line 5

Warning: fopen("navn.txt", "w+") - No such file or directory in /kunder/nordestgaarddk/htdocs/test3.php on line 5

Jeg skal IKKE selv oprette filen på forhånd, er det meningen i dette eksempel?

Filen skal gemmes i en bestemt sti på den maskine som brugeren af formen sidder ved. Det er altid den samme maskine, så det er ikke noget med at alle og enhver skal have oprettet tekstfiler. Den sti filen skal oprettes i er eksempelvis:

c:\dokumenter\data\*.txt

Prins Felix
Avatar billede prinsfelix Nybegynder
22. juli 2003 - 18:13 #5
Og for resten

Jeg har ikke min egen server. Det hele er lagt op hos min udbyder!

PF
Avatar billede nicklasb Nybegynder
22. juli 2003 - 18:15 #6
Du kan ikke gemme noget på en brugers computer, uden at han/hun selv vælger hvor det skal gemmes, og hvad der skal gemmes. I hvert falde ikke 100% lovligt.. :D
Avatar billede sukos Juniormester
22. juli 2003 - 18:17 #7
Du kan ikke, med PHP anyway, "tvinge en fil ned" på brugerens computer, andet end ved regulær download.

M.h.t. skrivning:
Ja, her laves filen hvis den ikke findes
Prøv med:
<?php
$filnavn = "navn.txt";
$str = "Her er noget tekst som skal gemmes";

$fp = fopen($_SERVER["DOCUMENT_ROOT"] ."/". $filnavn, 'w+');
if ($fp) {
fputs($fp, $str);
fclose($fp);
    }
?>
Avatar billede prinsfelix Nybegynder
22. juli 2003 - 20:10 #8
Hej

Er der nogen mulighed for at anvende cookies til mit formål. Er det muligt at definere HVOR på en PC en cookie skal gemmes? Og navngive en cookie efter eget valg?

Mht. dit sidste forslag Sukos, så får jeg følgende besked når jeg eksekverer det:

Warning: fopen("/kunder/nordestgaarddk/htdocs//navn.txt", "w+") - Permission denied in /kunder/nordestgaarddk/htdocs/test4.php on line 5

Linje 5 er linjen: $fp = fopen($_SERVER["DOCUMENT_ROOT"] ."/". $filnavn, 'w+');

Har du et forslag til hvad fejlen kan være - eller hvad jeg gør galt?

PF
Avatar billede repsac Nybegynder
22. juli 2003 - 23:59 #9
prinsfelix: er du sikker på at rettighederne på filen er rigtig? Dvs. om apache/php har lov til at skrive i filen?
Avatar billede prinsfelix Nybegynder
23. juli 2003 - 11:42 #10
Mht. rettigheder, så må jeg erkende at jeg ikke ved om jeg har det. Jeg har rettet henvendelse til min internetudbyder som "udersøger sagen"! Ham jeg talte med vidste ikke noget, men han ville sætte en konsulent på det. Hvis der er en derude der ved hvordan disse rettigheder tilpasses, så hold jer endlig ikke tilbage!
Avatar billede repsac Nybegynder
24. juli 2003 - 23:30 #11
Ehh, det lydder som om du har sat meget i gang for meget lidt...

Jeg går ud fra at det er en *nix-server (eks. GNU/Linux) som skidtet ligger på. På Linux hører der til hver evig eneste fil nogle rettigheder, altså nogle regler for hvem der må hvad. Reglerne er for "brugeren selv", en "gruppe af brugere" og "alle andre". For hver af de tre typer, findes der tre rettighedsenheder (eller hvad man nu kalder dem): læse, skrive og eksekvere.
Førend "vi" (= "alle andre") kan få lov at skrive i en given fil, skal "brugeren selv" (dvs. brugeren der "ejer" filen) give "os" lov til det. Med dit ftp-program kan du givetvis vælge noget i stil med "Rettigheder" eller måske "chmod". Vha. dit ftp-program bør du sætte rettighederne på filen "vi" skal have lov at skrive i, til "666" (for forklaring, spørg google.com eller os :)).
Avatar billede prinsfelix Nybegynder
25. juli 2003 - 08:30 #12
repsac, jeg accepterer dit svar. Jeg har fået det til at fungere!

Jeg kan vel først give dig pointene når du har operttet et svar, eller?

Prins Felix
Avatar billede prinsfelix Nybegynder
25. juli 2003 - 08:43 #13
Det der er lykkes for mig er, at tildele læse og skriverettighederne i mit ftp-program, men hvis du er i besiddelse af en kodestump der viser mig hvorledes jeg kan tilpasse disse rettigheder igennem php, så vil det hele være optimalt.

PF
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester