Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php[ Zmiana chmod poprzez protokół FTP
Forum PHP.pl > Forum > Przedszkole
molesta
Witam mam pewien problem
Chciałbym za pomoca protokołu FTP zmienic Chmod określonych plików mój kod wyglada tak:
  1. <?php
  2. $host = $_POST['host'];
  3. $port = $_POST['port'];
  4. $login = $_POST['login'];
  5. $password = $_POST['password'];
  6. $patch = $_POST['patch'];
  7. $conn_id = ftp_connect($host, $port); 
  8.  
  9.  
  10. $login_result = ftp_login($conn_id, $login, $password); 
  11.  
  12.  
  13. if ((!$conn_id) || (!$login_result)) { 
  14. echo "Połączenie FTP się nie powiodło!";
  15. echo "Próbowano połączyć się do $ftp_server jako użytkownik"
  16.  . $login;
  17. exit; 
  18. } else {
  19. echo "Połączony z $host jako użytkownik $login";
  20. }
  21.  
  22.  
  23. chmod('backup', 0777);
  24. chmod('cache', 0777);
  25.  ftp_close($conn_id); 
  26.  ?>


zapewne zastosowanie chmod() w tym przypadku jest nieprawidłowe

Brrdzo prosze o pomoc
qrees
Cytat(molesta @ 1.04.2008, 18:46:13 ) *
Witam mam pewien problem
Chciałbym za pomoca protokołu FTP zmienic Chmod określonych plików mój kod wyglada tak:
  1. <?php
  2. $host = $_POST['host'];
  3. $port = $_POST['port'];
  4. $login = $_POST['login'];
  5. $password = $_POST['password'];
  6. $patch = $_POST['patch'];
  7. $conn_id = ftp_connect($host, $port); 
  8.  
  9.  
  10. $login_result = ftp_login($conn_id, $login, $password); 
  11.  
  12.  
  13. if ((!$conn_id) || (!$login_result)) { 
  14. echo &#092;"Połączenie FTP się nie powiodło!\";
  15. echo &#092;"Próbowano połączyć się do $ftp_server jako użytkownik\"
  16.  . $login;
  17. exit; 
  18. } else {
  19. echo &#092;"Połączony z $host jako użytkownik $login\";
  20. }
  21.  
  22.  
  23. chmod('backup', 0777);
  24. chmod('cache', 0777);
  25.  ftp_close($conn_id); 
  26.  ?>


zapewne zastosowanie chmod() w tym przypadku jest nieprawidłowe

Brrdzo prosze o pomoc


Skoro korzystasz z funkcji ftp_*, to dlaczego nie skorzystasz też z http://pl.php.net/manual/en/function.ftp-chmod.php questionmark.gif Przecież jak wół w manualu jest napisane...
molesta
w sumie masz racje to w takim razie jak to zastosować ftp_chmod ( resource $ftp_stream , int $mode , string $filename ) do na przykład foleru "cache" który ma miec chmod 0777?

i jeszcze jedno....plikówbedzie znacznie wiecej do zmiany chmod czy dla każdego pliku musze na nowo wywoływac funkcje ftp_chmod?
marcio
Cytat(qrees @ 1.04.2008, 18:59:36 ) *
Skoro korzystasz z funkcji ftp_*, to dlaczego nie skorzystasz też z http://pl.php.net/manual/en/function.ftp-chmod.php questionmark.gif Przecież jak wół w manualu jest napisane...


Chyba tak powinno byc
  1. <?php
  2. ftp_chmod($resoure_z_ftp, chmod, 'nazwa_pliku');
  3. ?>
qrees
Cytat(molesta @ 1.04.2008, 19:05:33 ) *
w sumie masz racje to w takim razie jak to zastosować ftp_chmod ( resource $ftp_stream , int $mode , string $filename ) do na przykład foleru "cache" który ma miec chmod 0777?

i jeszcze jedno....plikówbedzie znacznie wiecej do zmiany chmod czy dla każdego pliku musze na nowo wywoływac funkcje ftp_chmod?

Co do zastosowania, patrz wyżej.
A co do ilości plików, to niestety dla każdego oddzielnie trzeba. Takie problemy najłatwiej się rozwiązuje jak masz możliwość połączenia z serwerem przez ssh. Wtedy masz normalną linię komend i wpisujesz po prostu (podkreślam, przez ssh, nie ftp):
Kod
chomod 777 *
molesta
to czym w takim razie jest zmienna $resoure_z_ftp?
qrees
Identyfikuje połączenie. W szczególności możesz mieć kilka połączeń z ftp i trzeba je jakoś rozróżnić. Dlatego właściwie wszystkie funkcje ftp_* wymagają podania tej zmiennej (poprawnej). U ciebie ta zmienna ma nazwę $conn_id.

Przykładowo, MySQL pozwala ją pominąć, domyślnie biorąc ostatnie połączenie. Jeżeli używa się więcej połączeń, to można tą wartość podać.
molesta
Wywala błąd:

"Warning: ftp_chmod() expects exactly 3 parameters, 1 given" w linii 59

a ta linia to
  1. <?php
  2. ftp_chmod('$conn_id,0777,$patch/backup');
  3. ?>


łączy prawidłowo z ftp ale..no właśnie ale co? biggrin.gif
qrees
ehh... angielski się kłania:
ftp_chmod oczekuje 3 parametrów, a ty nie wiedzieć czemu podałeś jeden długi....
tak powinno być:
  1. <?php
  2. ftp_chmod($conn_id,0777,$patch/backup);
  3. ?>


PS: Jak ktoś ci pomógł to możesz się jakoś odwdzięczyć
molesta
Sprawa nie rozwiazana wywala błedy:
Warning: Division by zero in xxxxxxxxxxxx on line 63

Warning: ftp_chmod() [function.ftp-chmod]: xxxx logged in in xxxxxxxx on line 63

Linia 63 wyglada tak:
  1. <?php
  2. ftp_chmod($conn_id, 0777, $patch/backup);
  3. ?>


a tu wklejam cały kod:
  1. <?php
  2. if(isset($_POST['Submit']))
  3. {
  4. $host = $_POST['host'];
  5. $port = $_POST['port'];
  6. $login = $_POST['login'];
  7. $password = $_POST['password'];
  8. $patch = $_POST['patch'];
  9.  
  10. $conn_id = ftp_connect($host, $port, 90); 
  11.  
  12.  
  13. $login_result = ftp_login($conn_id, $login, $password); 
  14.  
  15.  
  16. if ((!$conn_id) || (!$login_result)) { 
  17. echo "Połączenie FTP się nie powiodło!";
  18. echo "Próbowano połączyć się do $host jako użytkownik"
  19.  . $login;
  20. exit; 
  21. } else {
  22. echo "Połączony z $host jako użytkownik $login";
  23. }
  24.  
  25.  
  26. ftp_chmod($conn_id, 0777, $patch/backup);
  27.  
  28. ftp_close($conn_id);
  29.  }
  30. ?>


Niewiem już co jest grane :/

Pomocy
qrees
oj, no dobra, tym razem ja źle podałem, ale przeczytanie manuala też by się przydało:
powinno być:
  1. <?php
  2. ftp_chmod($conn_id, 0777, "$patch/backup");
  3. ?>
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.