Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 19, 2012 Cześć, tworzę mały projekt. Muszę przekopiować duże ilości plików za pomocą PHP. Do małej ilości plików używam tego: file_put_contents($nazwa,file_get_contents($sciezka)); Jednak do przekopiowania mam bardzo dużą ilość plików (~100), i nie mam siły do pisania tego 100 razy z ścieżkami. Fopeny, fgetsy i inne są zablokowane. Mam dostęp do shella, więc próbowałem to zrobić przez shell_exec ale dalej też zablokowane. Zna ktoś sposób? Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Lipiec 19, 2012 (edytowany) Readdir tez nie dziala? Edytowano Lipiec 19, 2012 przez xorg (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 19, 2012 (edytowany) Readdir tez nie dziala? Nie dziala, permissions denied. Warning: opendir() [function.opendir]: SAFE MODE Restriction in effect. The script whose uid/gid is 3307/1009 is not allowed to access / owned by uid/gid 0/0 in /homex/ca1ek/public_html/test.php on line 3 Warning: opendir(/lol/) [function.opendir]: failed to open dir: Permission denied in /homex/ca1ek/public_html/test.php on line 3 Warning: readdir() expects parameter 1 to be resource, boolean given in /homex/ca1ek/public_html/test.php on line 4 Warning: readdir() expects parameter 1 to be resource, boolean given in /homex/ca1ek/public_html/test.php on line 5 Warning: readdir() expects parameter 1 to be resource, boolean given in /homex/ca1ek/public_html/test.php on line 6 Warning: readdir() expects parameter 1 to be resource, boolean given in /homex/ca1ek/public_html/test.php on line 7 Warning: readdir() expects parameter 1 to be resource, boolean given in /homex/ca1ek/public_html/test.php on line 8 Warning: readdir() expects parameter 1 to be resource, boolean given in /homex/ca1ek/public_html/test.php on line 9 Warning: closedir() expects parameter 1 to be resource, boolean given in /homex/ca1ek/public_html/test.php on line 10 edit: Przy okazji, są foldery w folderze. Edytowano Lipiec 19, 2012 przez Dawid Pietrzak (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Tajgeer 19 Zgłoś post Napisano Lipiec 19, 2012 (edytowany) SAFE MODE Restriction in effect. Edytowano Lipiec 19, 2012 przez Tajgeer (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 19, 2012 No wiem, ale to nie odpowiedź na pytanie. Udostępnij ten post Link to postu Udostępnij na innych stronach
Tajgeer 19 Zgłoś post Napisano Lipiec 19, 2012 (edytowany) Wyłącz safe_mode jeśli masz możliwość. Ewentualnie nadaj uprawnienia dla odpowiedniego usera do wykonania skryptu. W innym wypadku safe_mode będzie blokować. Warning: opendir(/lol/) [function.opendir]: failed to open dir: Permission denied in /homex/ca1ek/public_html/test.php on line 3 Nic dziwnego, skoro próbujesz się odwołać do takiego katalogu. Może powinno być /homex/ca1ek/public_html/lol/ ? Edytowano Lipiec 19, 2012 przez Tajgeer (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 19, 2012 (edytowany) Wyłącz safe_mode jeśli masz możliwość. Ewentualnie nadaj uprawnienia dla odpowiedniego usera do wykonania skryptu. W innym wypadku safe_mode będzie blokować. Nic dziwnego, skoro próbujesz się odwołać do takiego katalogu. Może powinno być /homex/ca1ek/public_html/lol/ ? Prawda, zadziałało jak dałem pełną ścieżkę do pliku, ciekawe czemu pokazało safe mode. Zastanawiam się jak zmiksować readdir z file_put_contents, bo readdir nie pokazuje co jest katalogiem a co plikiem. Edytowano Lipiec 19, 2012 przez Dawid Pietrzak (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Lipiec 19, 2012 ciekawe czemu pokazało safe mode. Dlatego SAFE MODE Restriction in effect. The script whose uid/gid is 3307/1009 is not allowed to access / owned by uid/gid 0/0 Zastanawiam się jak zmiksować readdir z file_put_contents, bo readdir nie pokazuje co jest katalogiem a co plikiem. Sprawdzasz to funkcją is_dir W dokumentacji http://php.net/manua...ion.readdir.php w komentarzach masz całą masę przykładów rekursywnych funkcji listujących pliki i pliki z podkatalogów. A przy okazji dlaczego nie stosujesz funkcji copy http://php.net/manual/en/function.copy.php do kopiowania tylko wynalazek file_put_contents i file_get_contents przez co czytasz do skryptu zawartość pliku i ją zapisujesz? Udostępnij ten post Link to postu Udostępnij na innych stronach
Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 19, 2012 (edytowany) Dlatego Sprawdzasz to funkcją is_dir W dokumentacji http://php.net/manua...ion.readdir.php w komentarzach masz całą masę przykładów rekursywnych funkcji listujących pliki i pliki z podkatalogów. A przy okazji dlaczego nie stosujesz funkcji copy http://php.net/manua...nction.copy.php do kopiowania tylko wynalazek file_put_contents i file_get_contents przez co czytasz do skryptu zawartość pliku i ją zapisujesz? Nie wiedziałem o copy, dzięki za pomoc. Edit: copy też zablokowane. Edytowano Lipiec 19, 2012 przez Dawid Pietrzak (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Lipiec 19, 2012 Sporo tych funkcji masz zablokowane i trzeba przyznać, że takie dość podstawowe. Co to za hosting, nie ma tam możliwości własnego php.ini i ich odblokować lub poprosić adminów o odblokowanie? Udostępnij ten post Link to postu Udostępnij na innych stronach
Tajgeer 19 Zgłoś post Napisano Lipiec 19, 2012 Copy zablokowane, czy może znowu brak uprawnień? Bo to jest rożnica... Udostępnij ten post Link to postu Udostępnij na innych stronach
Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 20, 2012 Copy zablokowane, czy może znowu brak uprawnień? Bo to jest rożnica... Znowu pomyłka, jak chcę cos przekopiowac z podkatalogu, wali błędem, a jak z tego samego folderu co skrypt działa. Już chyba wiem jak to napisać. Udostępnij ten post Link to postu Udostępnij na innych stronach
Tajgeer 19 Zgłoś post Napisano Lipiec 20, 2012 Wychodzi na to, że problemem nie są zablokowane funkcje, tylko złe ich stosowanie (używanie bezwzględnych ścieżek zaczynających się od /). Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Lipiec 20, 2012 Jakie sciezki podajesz, relatywne czy absolutne? Udostępnij ten post Link to postu Udostępnij na innych stronach
Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 20, 2012 (edytowany) Jakie sciezki podajesz, relatywne czy absolutne? hdchg czy sjhdh? Ja newbie i nie wiem Chyba chodzi o ./blabla czy /blabla? Próbowałem obu, permissions denied a w kliencie ftp ustawilem wszystko na 777 BTW nie mialem pomyslu jak to zrobic wiec copy zrobilem z sciezka do kazdego pliku. Ale ręce bolą. Kod: $nick = 'test'; //kopiowanie copy('./bot/index.php','./'.$nick.'/index.php'); copy('./bot/bot/class../bot.php','./'.$nick.'/bot/class../bot.php'); copy('./bot/bot/class.Browser.php','./'.$nick.'/bot/class.Browser.php'); copy('./bot/bot/class.CaptchaBreaker.php','./'.$nick.'/bot/class.CaptchaBreaker.php'); copy('./bot/bot/class.Util.php','./'.$nick.'/bot/class.Util.php'); copy('./bot/bot/simple_html_dom.php','./'.$nick.'/bot/simple_html_dom.php'); copy('./bot/bot/configuration/class.DBConfig.php','./'.$nick.'/bot/configuration/simple_html_dom.php'); copy('./bot/bot/configuration/class.XMLFileConfig.php','./'.$nick.'/bot/configuration/class.XMLFileConfig.php'); copy('./bot/bot/configuration/interface.Configuration.php','./'.$nick.'/bot/configuration/interface.Configuration.php'); copy('./bot/bot/logging/class.EchoAppender.php','./'.$nick.'/bot/logging/class.EchoAppender.php'); copy('./bot/bot/logging/class.FileAppender.php','./'.$nick.'/bot/logging/class.FileAppender.php'); copy('./bot/bot/logging/class.Logger.php','./'.$nick.'/bot/logging/class.Logger.php'); copy('./bot/bot/logging/class.LogLevel.php','./'.$nick.'/bot/logging/class.LogLevel.php'); copy('./bot/bot/logging/interface.Appender.php','./'.$nick.'/bot/logging/interface.Appender.php'); copy('./bot/bot/configs/.htaccess','./'.$nick.'/bot/bot/configs/.htaccess'); //copy('./bot/bot/configs/example_settings.xml','./'.$nick.'/bot/bot/configs/example_settings.xml'); copy('./bot/bot/configs/index.html','./'.$nick.'/bot/bot/configs/index.html'); copy('./bot/logs/hh_my_username.log','./'.$nick.'/bot/logs/hh_my_username.log'); copy('./bot/matrixes/matrix_2.gif','./'.$nick.'/bot/matrixes/matrix_2.gif'); copy('./bot/matrixes/matrix_4.gif','./'.$nick.'/bot/matrixes/matrix_4.gif'); copy('./bot/matrixes/matrix_5.gif','./'.$nick.'/bot/matrixes/matrix_5.gif'); copy('./bot/matrixes/matrix_6.gif','./'.$nick.'/bot/matrixes/matrix_6.gif'); copy('./bot/matrixes/matrix_7.gif','./'.$nick.'/bot/matrixes/matrix_7.gif'); copy('./bot/matrixes/matrix_8.gif','./'.$nick.'/bot/matrixes/matrix_8.gif'); copy('./bot/matrixes/matrix_9.gif','./'.$nick.'/bot/matrixes/matrix_9.gif'); copy('./bot/tmp/.htaccess','./'.$nick.'/bot/tmp/.htaccess'); copy('./bot/useragents/CHROME_WINXP.properties','./'.$nick.'/bot/useragents/CHROME_WINXP.properties'); copy('./bot/useragents/CHROMIUM_LINUX.properties','./'.$nick.'/bot/useragents/CHROMIUM_LINUX.properties'); copy('./bot/useragents/EPIPHANY_LINUX.properties','./'.$nick.'/bot/useragents/EPIPHANY_LINUX.properties'); copy('./bot/useragents/FF_LINUX.properties','./'.$nick.'/bot/useragents/FF_LINUX.properties'); copy('./bot/useragents/FF_WINXP.properties','./'.$nick.'/bot/useragents/FF_WINXP.properties'); copy('./bot/useragents/IE_WIN7.properties','./'.$nick.'/bot/useragents/IE_WIN7.properties'); copy('./bot/useragents/IE8_WINXP.properties','./'.$nick.'/bot/useragents/IE8_WINXP.properties'); copy('./bot/useragents/MIDORI_LINUX.properties','./'.$nick.'/bot/useragents/MIDORI_LINUX.properties'); copy('./bot/useragents/FF_WIN7.properties','./'.$nick.'/bot/useragents/FF_WIN7.properties'); copy('./bot/useragents/OPERA_WINXP.properties','./'.$nick.'/bot/useragents/OPERA_WINXP.properties'); nie dziala Edytowano Lipiec 20, 2012 przez Dawid Pietrzak (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Lipiec 20, 2012 http://istyar.net/el/wprow_linux/html/wprow_linux-3-1.html Udostępnij ten post Link to postu Udostępnij na innych stronach
Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 20, 2012 http://pastebin.com/wLdbSYji Wszystko ma chmod 777 Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Lipiec 20, 2012 Uzyj sciezek absolutnych. Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Lipiec 20, 2012 Czyli np. /homex/ca1ek/public_html/bot/index.php itd. Udostępnij ten post Link to postu Udostępnij na innych stronach
Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 20, 2012 Pozamieniałem, kod wygląda tak: <?php $nick = 'test'; //kopiowanie copy('/homex/ca1ek/public_html/bot/index.php','/homex/ca1ek/public_html/'.$nick.'/index.php'); copy('/homex/ca1ek/public_html/bot/bot/class.Bot.php','/homex/ca1ek/public_html/'.$nick.'/bot/class../bot.php'); copy('/homex/ca1ek/public_html/bot/bot/class.Browser.php','/homex/ca1ek/public_html/'.$nick.'/bot/class.Browser.php'); copy('/homex/ca1ek/public_html/bot/bot/class.CaptchaBreaker.php','/homex/ca1ek/public_html/'.$nick.'/bot/class.CaptchaBreaker.php'); copy('/homex/ca1ek/public_html/bot/bot/class.Util.php','/homex/ca1ek/public_html/'.$nick.'/bot/class.Util.php'); copy('/homex/ca1ek/public_html/bot/bot/simple_html_dom.php','/homex/ca1ek/public_html/'.$nick.'/bot/simple_html_dom.php'); copy('/homex/ca1ek/public_html/bot/bot/configuration/class.DBConfig.php','/homex/ca1ek/public_html/'.$nick.'/bot/configuration/simple_html_dom.php'); copy('/homex/ca1ek/public_html/bot/bot/configuration/class.XMLFileConfig.php','/homex/ca1ek/public_html/'.$nick.'/bot/configuration/class.XMLFileConfig.php'); copy('/homex/ca1ek/public_html/bot/bot/configuration/interface.Configuration.php','/homex/ca1ek/public_html/'.$nick.'/bot/configuration/interface.Configuration.php'); copy('/homex/ca1ek/public_html/bot/bot/logging/class.EchoAppender.php','/homex/ca1ek/public_html/'.$nick.'/bot/logging/class.EchoAppender.php'); copy('/homex/ca1ek/public_html/bot/bot/logging/class.FileAppender.php','/homex/ca1ek/public_html/'.$nick.'/bot/logging/class.FileAppender.php'); copy('/homex/ca1ek/public_html/bot/bot/logging/class.Logger.php','/homex/ca1ek/public_html/'.$nick.'/bot/logging/class.Logger.php'); copy('/homex/ca1ek/public_html/bot/bot/logging/class.LogLevel.php','/homex/ca1ek/public_html/'.$nick.'/bot/logging/class.LogLevel.php'); copy('/homex/ca1ek/public_html/bot/bot/logging/interface.Appender.php','/homex/ca1ek/public_html/'.$nick.'/bot/logging/interface.Appender.php'); copy('/homex/ca1ek/public_html/bot/bot/configs/.htaccess','/homex/ca1ek/public_html/'.$nick.'/bot/configs/.htaccess'); //copy('/homex/ca1ek/public_html/bot/bot/configs/example_settings.xml','/homex/ca1ek/public_html/'.$nick.'/bot/configs/example_settings.xml'); copy('/homex/ca1ek/public_html/bot/bot/configs/index.html','/homex/ca1ek/public_html/'.$nick.'/bot/configs/index.html'); copy('/homex/ca1ek/public_html/bot/logs/hh_my_username.log','/homex/ca1ek/public_html/'.$nick.'/logs/hh_my_username.log'); copy('/homex/ca1ek/public_html/bot/matrixes/matrix_2.gif','/homex/ca1ek/public_html/'.$nick.'/matrixes/matrix_2.gif'); copy('/homex/ca1ek/public_html/bot/matrixes/matrix_4.gif','/homex/ca1ek/public_html/'.$nick.'/matrixes/matrix_4.gif'); copy('/homex/ca1ek/public_html/bot/matrixes/matrix_5.gif','/homex/ca1ek/public_html/'.$nick.'/matrixes/matrix_5.gif'); copy('/homex/ca1ek/public_html/bot/matrixes/matrix_6.gif','/homex/ca1ek/public_html/'.$nick.'/matrixes/matrix_6.gif'); copy('/homex/ca1ek/public_html/bot/matrixes/matrix_7.gif','/homex/ca1ek/public_html/'.$nick.'/matrixes/matrix_7.gif'); copy('/homex/ca1ek/public_html/bot/matrixes/matrix_8.gif','/homex/ca1ek/public_html/'.$nick.'/matrixes/matrix_8.gif'); copy('/homex/ca1ek/public_html/bot/matrixes/matrix_9.gif','/homex/ca1ek/public_html/'.$nick.'/matrixes/matrix_9.gif'); copy('/homex/ca1ek/public_html/bot/tmp/.htaccess','/homex/ca1ek/public_html/'.$nick.'/tmp/.htaccess'); copy('/homex/ca1ek/public_html/bot/useragents/CHROME_WINXP.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/CHROME_WINXP.properties'); copy('/homex/ca1ek/public_html/bot/useragents/CHROMIUM_LINUX.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/CHROMIUM_LINUX.properties'); copy('/homex/ca1ek/public_html/bot/useragents/EPIPHANY_LINUX.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/EPIPHANY_LINUX.properties'); copy('/homex/ca1ek/public_html/bot/useragents/FF_LINUX.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/FF_LINUX.properties'); copy('/homex/ca1ek/public_html/bot/useragents/FF_WINXP.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/FF_WINXP.properties'); copy('/homex/ca1ek/public_html/bot/useragents/IE_WIN7.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/IE_WIN7.properties'); copy('/homex/ca1ek/public_html/bot/useragents/IE8_WINXP.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/IE8_WINXP.properties'); copy('/homex/ca1ek/public_html/bot/useragents/MIDORI_LINUX.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/MIDORI_LINUX.properties'); copy('/homex/ca1ek/public_html/bot/useragents/FF_WIN7.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/FF_WIN7.properties'); copy('/homex/ca1ek/public_html/bot/useragents/OPERA_WINXP.properties','/homex/ca1ek/public_html/'.$nick.'/useragents/OPERA_WINXP.properties'); ?> Ale wychodzą takie błędy http://pastebin.com/ufMqGLkw Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Lipiec 20, 2012 Może dlatego, że w większości cywilizowanych systemów katalogi domowe są w /home/ a nie /homex/ ? Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Lipiec 20, 2012 Ale u niego (zobacz w http://www.webhostingtalk.pl/topic/38519-php-kopiowanie-plikow-na-serwerze/page__view__findpost__p__326198) wywalał błędy z homex. Udostępnij ten post Link to postu Udostępnij na innych stronach
kafi 2425 Zgłoś post Napisano Lipiec 20, 2012 A, faktycznie, nie zauważyłem. Tak analizując ten kod dokładniej, to wypadało by jakoś utworzyć katalog, do którego się chce kopiować. Udostępnij ten post Link to postu Udostępnij na innych stronach
Dawid Pietrzak 0 Zgłoś post Napisano Lipiec 21, 2012 A, faktycznie, nie zauważyłem. Tak analizując ten kod dokładniej, to wypadało by jakoś utworzyć katalog, do którego się chce kopiować. Testowałem, nie działa niezależnie czy jest katalog, nie ma katalogu, czy jest katalog z chmodem 777. Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Lipiec 21, 2012 Myślę, że to najwyższy czas żebyś komuś to zlecił bo wozisz się z tym już sporo czasu a efektów nie widać a podstawowej wiedzy Ci brakuje. Udostępnij ten post Link to postu Udostępnij na innych stronach