Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]mkdir() nie tworzy katalogu
Forum PHP.pl > Forum > Przedszkole
flagoon
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.
Sabistik
Proszę o poprawę tytułu tematu na zgodny z regulaminem działu przedszkole inaczej zostanie zamknięty. To samo tyczy się bbcode.
maziak
Sprobuj :
  1. <?php
  2. mkdir("./xxx",0777);
  3. //z kropeczka
  4. ?>
flagoon
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.
maziak
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.
flagoon
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 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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.