28. juni 2005 - 20:43Der er
13 kommentarer og 1 løsning
move_uploaded_file problem evt med safe mode
Hej, jeg har opdaget en fejl på min hjemmeside, og jeg forstår ikke hvad der er galt. Her er fejlen jeg får:
Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid/gid is 131920/131920 is not allowed to access / owned by uid/gid 0/0 in /hsphere/local/home/logmigpa/tilbudsmaskinen.dk/pgs/efterlys.php on line 193
Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid/gid is 131920/131920 is not allowed to access / owned by uid/gid 0/0 in /hsphere/local/home/logmigpa/tilbudsmaskinen.dk/pgs/efterlys.php on line 194
Min kode ser ca sådan ud: en masse tjek og så kommer: move_uploaded_file($_FILES["picture1"]["tmp_name"], $_SERVER["DOCUMENT_ROOT"]."/upld/temp/".$picture1);
Safe mode er ON og det skal ikke laves om :o)
Hvad skal jeg stille op for at få det til at virke igen?
Som du kan se at fejlbeskeden siger, så har din bruger ikke tilladelse til at tilgå /, der er ejet af root. Altså du prøver at tilgå filen "/" og det må du ikke.
Er du sikker på, at $_FILES["picture1"]["tmp_name"] og $_SERVER["DOCUMENT_ROOT"] har de værdier, som du forventer?
Prøv engang at udskrive dem med:
printf("tmp name is: %s<br />document root is: %s<br />", $_FILES["picture1"]["tmp_name"], $_SERVER["DOCUMENT_ROOT"]); exit;
Og put det ind lige ind din move_uploaded_file - hvis en af de til variabler mangler eller har et forkert indhold, så er det nok årsag til fejlen.
Hm, det ser jo ganske korrekt ud... Du er sikker på, at det er denne linje, hvor fejlen opstår? Der rapporteres jo fejl på to linjer? Har du mange move_uploaded_file? I så fald lav samme test på dem alle - blot for at se om stierne er de rigtige :)
skal man ik godtnok skrive $_SERVER["DOCUMENT_ROOT"] i denne linie: move_uploaded_file($_FILES["picture1"]["tmp_name"], $_SERVER["DOCUMENT_ROOT"]."/upld/temp/".$picture1);
Det er altså underligt, for det har virket. Men jeg har så vidt kun ændret det med $_SERVER["DOCUMENT_ROOT"]
Jeg har fundet dette på php.net: Don't forget to set chmod to 777 for the directory to which you want to move the file. Otherwise you will maybe get "failed to open stream: Permission denied in ..."!
Har du fundet frem til, om det er alle dine move_uploaded_file, der fejler, eller er det kun nogle af dem? Og chmod har intet med dit problem at gøre - du kan ikke chmod'e / - det er ikke din mappe :)
Jeg har ændret CHMOD til 777 med mit FTP program og nu virker det som det skal. Men er det sikkerhedsmæssigt forkert at gøre??? Er der en anden måde, der er bedre?
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.