Hej alle sammen. ja jeg sidder i lortet igen... jeg sidder lige med et mindre problem, og det er at jeg har lavet noget som ikke virker som det skal... nedenfor kan i se min kode, og efter den kan i se den fejl jeg får..
KODE : -------------------------------------------
Warning: fopen("/fairhost/Rippie3/lanworld.dk/etellerandet.txt", "w+") - Permission denied in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 14
Warning: fwrite(): supplied argument is not a valid File-Handle resource in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 15
Warning: fclose(): supplied argument is not a valid File-Handle resource in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 16 Indholdet er rettet og gemt...
hvad med: <?php chmod("/fairhost/Rippie3/lanworld.dk/$filename", 0777); $filename = "$_GET[filename]"; $fd = fopen ($filename, "rb"); $contents = fread ($fd, filesize ($filename)); fclose ($fd); ?> Så skulle der ikke være problemer fremover, men husk at chmod() tager den fulde sti tl filen. Mit forslag er derfor kun et 'gæt' baseret på dine fejlmeddelelser ;-)
Warning: fopen("/fairhost/Rippie3/lanworld.dk/etellerandet.txt", "w+") - Permission denied in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 14
Warning: fwrite(): supplied argument is not a valid File-Handle resource in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 15
Warning: fclose(): supplied argument is not a valid File-Handle resource in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 16 Indholdet er rettet og gemt...
Hej igen.. jeg vil bare lige sige at hvis jeg via mit ftp program chmod'der den fil som skal ændres så virker det fint.... men hvorfor kan jeg ikke få lov til at chmod igennem php ???
jeg har os chmod den fil som skal ændre den anden fil.....
Jeg tror problemet er at du prøver at åbne filen med w+ privilegier inden du har lavet chmod. Så hvis du flytter chmod delen op før der hvor du åbner filen, så skulle det funke.
Hmmm.. nu er den flyttet op over der hvor jeg læser filen inden den skal skrive i den... og jeg får denne fejl...
Warning: chmod failed: Operation not permitted in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 14
Warning: fopen("/fairhost/Rippie3/lanworld.dk/test.txt", "w+") - Permission denied in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 15
Warning: fwrite(): supplied argument is not a valid File-Handle resource in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 16
Warning: fclose(): supplied argument is not a valid File-Handle resource in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 17 Indholdet er rettet og gemt...
og nu skal jeg så lige sige at det bibliotek som den fil ligger i som jeg skal ændre det bib er sat til 777 gjorde jeg via ftp program...
Jeg er ikke så meget hjemme i *NIX systemer, men jeg kunne forestille mig at du ikke har lov til at chmod'e hvis scriptet ikke er owner af filen. Prøv at lave et lille script der laver en ny fil:
<?php $fil = fopen("/fairhost/Rippie3/lanworld.dk/test2.txt", "w+"); if ($fil) fclose($fil); else echo "Kunne ikke skrive filen"; ?>
På den måde skulle scriptet gerne blive owner af test2.txt, og du checker samtidig at scriptet har write permission i den mappe.
Næppe. Det er ikke scriptet der er ejer en fil, heller ikke selvom det er scriptet der kreerer filen. Det er http serveren der er "bruger" på systemet, typisk som brugeren "nobody", "apache", "httpd" eller noget lignende, og det er denne bruger der skal forsøge at chmod'de din fil. Normalt er det kun superadminen der har ret til sådan noget, hvilket betyder at webserveren skulle have samme rettigheder som brugeren "root".
Du kan altså roligt gå ud fra, at chmod() ikke er noget du kan bruge i denne sammenhæng.
I eksemplet gætter jeg på, at webserveren tilhører gruppen "users". $return vil enten være true eller false, så den er ikke så forfærdelig interessant med mindre visning af fejl er slået fra. Så kan du echo'e denne værdi.
Det er ikke sikkert at det er nødvendigt at angive fuld sti til filen, men det finder du hurtigt ud af...
Hvis det skal kunne bruges til noget skal filen i øvrigt være chmod'et til 766 eller i hvert fald en værdi hvor gruppen må gøre noget som helst.
Altså, du skal ikke vente dig for meget... Hvis du skal kunne arbejde med filrettigheder, så skal du have en temmelig god kontrol over din webserver.
Det oprindelige problem var jo, at du fik en meddelelse om ugyldigt filehandle fordi din fopen() fejler:
Warning: fopen("/fairhost/Rippie3/lanworld.dk/etellerandet.txt", "w+") Permission denied in /fairhost/Rippie3/lanworld.dk/admin/sites/ret.kode.php on line 14
fopen() med "w+" vil forsøge at kreere filen hvis den ikke findes, og det får du nok ikke lov til. Prøv med "r" i stedet for. Hvis du stadig ikke får lov at åbne filen, så er filen lukket land. Hvis det lykkes så prøv med "r+", det er i lighed med "w+" også en tilstand hvor du får lov at skrive til filen, bare den findes i forvejen.
Din sti "/fairhost/Rippie3/lanworld.dk/" er i hvert fald korrekt. Det ses tydeligt i din info.php, slet den hvis du ikke har brug for den... Tilbage er 'bare' at få løst nogle rettighedsproblemer så du kan skrive din fil.
Umiddelbart vil jeg gætte på, at den eneste parameter du får lov til at bruge på fopen() er "r", altså kun læsning af filen. I så fald kan du måske ændre rettigheder på filen vha. FTP eller endnu bedre, du kan skrive filen vha. FTP:
About writing to file with a specific user id: You can usually change file permissions with FTP. Just open a FTP connection and say "chmod o+w filename". It is also possible to use FTP connection to write the file, for example, "fopen(ftp://user:password@ftpserver.address/file,w)". That way the file is created and used with your username and password, which (IMHO) is more secure than having files with write permission for all.
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.