Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]mkdir() nie tworzy katalogu, a prawa mam ustawione poprawnie
flagoon
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Mam prosty skrypt, który pobiera dane od użytkownika, zapisuje je do bazy danych a przesłane pliki powinien zapisywać w utworzonym katalogu. Sama część pobierania i dopisywania do bazy działa ok, problem mam natomiat z tworzeniem katalogów. Poniżej kod:
  1. <?php
  2. $folder=mysql_insert_id() ;
  3. if($_FILES['foto1']['size'] > 0 || $_FILES['foto2']['size'] > 0 || $_FILES['foto3']['size'] > 0)
  4. {
  5. mkdir("/$folder", 0777, true);
  6. chmod("/$folder", 0777, true);
  7. }
  8.  
  9. //--------------------------------------------------------------
  10. function przerzuc_obrazek($obj,$folder)
  11. {
  12. if($obj['size'] > 0)
  13. {
  14. $fp = fopen($obj['tmp_name'], 'r');
  15.  $content = fread($fp, $obj['size']);
  16.  fclose($fp);
  17.  
  18. $obj['name'] = addslashes($obj['name']);
  19.  
  20.  chdir("/$folder");
  21. $newFile = fopen($obj['name'],'w+');
  22. fwrite($newFile,$content);
  23. fclose($newFile);
  24. chdir("../../");
  25. }
  26. }
  27. //--------------------------------------------------------------
  28. przerzuc_obrazek($_FILES['foto1'],$folder);
  29. //--------------------------------------------------------------
  30. ?>

Zmienna $folder ma poprawnie przypisaną wartość nowo tworzonego wpisu, sam plik jest poprawnie przenoszony do katalogu gdzie jest jest skrypt, natomiast katalog nie jest tworzony. W ramach testów spróbowałem kilka razy po prostu tworzyć katalogi.
Prawa do katalogu są ok. Plik jest przenoszony poprawnie. Jedynie katalog nie jest utworzony. Pewnie to znowu jakiś przecinek lub cudzysłów. Dzięki za pomoc.

Ten post edytował flagoon 11.03.2008, 09:51:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Sabistik
post
Post #2


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Proszę o poprawę tytułu tematu na zgodny z regulaminem działu przedszkole inaczej zostanie zamknięty. To samo tyczy się bbcode.
Go to the top of the page
+Quote Post
maziak
post
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


Sprobuj :
  1. <?php
  2. mkdir("./xxx",0777);
  3. //z kropeczka
  4. ?>


Ten post edytował maziak 11.03.2008, 09:45:13
Go to the top of the page
+Quote Post
flagoon
post
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Cytat(maziak @ 11.03.2008, 09:44:34 ) *
Sprobuj :
  1. <?php
  2. mkdir(&#092;"./xxx\",0777);
  3. //z kropeczka
  4. ?>


Niestety nic to nie dało. Skopiowałem Twój kod do pustego pliku, wsadziłem na serwer a potem wywołałem przez WWW i katalog nie został utworzony. Próbowałem podać całą ścieżkę ("public_html/xxx/xxx2" <- nowym katalogiem miał być xxx2) też nie działa.
Go to the top of the page
+Quote Post
maziak
post
Post #5





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

Ostrzeżenie: (0%)
-----


Oj :-/ Dodam tylko, że sprawdziłem i u mnie działa na obydwa sposoby, z i bez kropki. Tak więc obawiam sie, że problem leży gdzieś głębiej. Bez kropki tworzy katalog na dysku na ktorym mam serwer. Np. "C:\xxx".

Poczytaj w komentarzach,
http://php.net.pl/manual/pl/function.mkdir.php
Moze ktoś miał juz podobny problem. A i jezeli jest jakikolwiek komunikat błędu to go tu wklej.
Go to the top of the page
+Quote Post
flagoon
post
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Cytat(maziak @ 11.03.2008, 09:58:40 ) *
Oj :-/ Dodam tylko, że sprawdziłem i u mnie działa na obydwa sposoby, z i bez kropki. Tak więc obawiam sie, że problem leży gdzieś głębiej. Bez kropki tworzy katalog na dysku na ktorym mam serwer. Np. "C:\xxx".


Głupie niedopatrzenie z mojej strony (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) . Ustawiłem prawa dla jednego katalogu a potem z pośpiechu skrypt wsadziłem do innego katalogu. Mój błąd. Na szczęście na forum znalazłem coś takiego:
  1. <?php
  2.  ini_set('display_errors', 1);
  3. ?>

i życie stało się prostsze.

Maziak,dzięki za poświęcony czas.

Ten post edytował flagoon 11.03.2008, 10:10:14
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 12:32