Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Изменение прав доступа через FTP
 
 автор: krollik   (02.02.2006 в 13:05)   письмо автору
 
 

Вот написал скрипт, который должен смотреть какие права стоят на папку на удалённом ftp и изменять их.. Только он не делает и не то и не то!! Помогите плиз!!!

<?php
$file 
'new';
$ftp_server 'ftp.*******.com';
$ftp_user_name "******@******.com';
$ftp_user_pass = '*******';
// установка соединения
$conn_id = ftp_connect($ftp_server);
// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id$ftp_user_name$ftp_user_pass);
// получение текущих прав
$data = ftp_rawlist($conn_id, '$file');
$rigths = chmodnum((substr($data[0],0,10)));
print "
Текущие права $rigths";
// установка прав на папку
If (
$rigths = "777") {
 If (ftp_chmod(
$conn_id, 0666, $file) !== false) {
 echo "
Права доступа к папке $file изменены на 666\n";
 } else {
 echo "
Не удалось изменить права доступа к папке $file\n";
 }
} else {
 If (ftp_chmod(
$conn_id, 0777, $file) !== false) {
 echo "
Права доступа к папке $file изменены на 777\n";
 } else {
 echo "
Не удалось изменить права доступа к папке $file\n";
 }
}
ftp_close(
$conn_id);
function chmodnum(
$mode) {
   
$realmode = "";
   
$legal =  array("","w","r","x","-");
   
$attarray = preg_split("//",$mode);
   
for($i=0;$i<count($attarray);$i++){
       if(
$key array_search($attarray[$i],$legal)){
           
$realmode .= $legal[$key];
       }
   }
   
$mode str_pad($realmode,9,'-');
   
$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
   
$mode strtr($mode,$trans);
   
$newmode '';
   
$newmode .= $mode[0]+$mode[1]+$mode[2];
   
$newmode .= $mode[3]+$mode[4]+$mode[5];
   
$newmode .= $mode[6]+$mode[7]+$mode[8];
   return 
$newmode;
}
?>

Зарание спасибо!!!

   
 
 автор: cheops   (02.02.2006 в 14:13)   письмо автору
 
   для: krollik   (02.02.2006 в 13:05)
 

У вас ошибка в строке
<?php
  $ftp_user_name 
"******@******.com';
?>

Строка начинается с ", а заканчивается '.

   
 
 автор: krollik   (02.02.2006 в 14:16)   письмо автору
 
   для: cheops   (02.02.2006 в 14:13)
 

это описка, я просто настоящий логин заменял...

   
 
 автор: krollik   (02.02.2006 в 14:29)   письмо автору
 
   для: krollik   (02.02.2006 в 13:05)
 

Вылетает вот что..

Notice: Undefined offset: 0 in z:\home\newww\www\new2.php on line 12
Текущие права 0000
Fatal error: Call to undefined function: ftp_chmod() in z:\home\newww\www\new2.php on line 16

   
 
 автор: cheops   (03.02.2006 в 02:18)   письмо автору
 
   для: krollik   (02.02.2006 в 14:29)
 

notice является своеобразным советом и выводится, когда выставлена максимальная чувствительность PHP к ошибкам - её следует понизить, как это сделано на всех хостингах, иначе они не дадут работать. Для этого, следует выставить соответствующее значение для директивы error_reporting http://www.softtime.ru/info/articlephp.php?id_article=23, в конфигурационном файле php.ini
error_reporting = E_ALL & ~E_NOTICE  

Так же можно изменить уровень обработки ошибок локально, для этого в начало скрипта следует поместить функцию
<?php 
Error_Reporting
(E_ALL & ~E_NOTICE); 
?>

В качестве параметра, которой передать соответствующий уровень обработки ошибок.

PS Почему вторую ошибку выводит - не понятно...

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4985

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования