Я не очень понимаю, а как мне, хотя бы временно, решить эту проблему, куда вставить код?
кому вопрос?
Я не очень понимаю, а как мне, хотя бы временно, решить эту проблему, куда вставить код?
Версия патча для моего компонента.
Да, и это правильное решение
Ну тогда используя basename можно так:
вариант с двумя слэшами — это "производное" от полного пути в имени файла.
и всетаки, раз имеем три варианта наличия слеша (без, один слеш, два слеша) может просто перед проверкой "чистить" слеши и потом проверять?
Можно. Но лучше задействовать basename.
Есть еще вариант в голове.
очищать слеши совсем функцией $str = str_replace("\/","", $str);
( [0] => /СУ02/су_20130228.zip [1] => /СУ02/СУ.rar )
попробуйте в файл из #46 установить $path='/system/core'
а вот вывод скрипта из #46 на том же серваке (стенде):
Сервер найден Подключение выполнено успешно ( [0] => /.htaccess [1] => /bootstrap.php [2] => /cache [3] => /credits.txt [4] => /cron.php [5] => /index.php [6] => /license.en.txt [7] => /license.ru.txt [8] => /readme.txt [10] => /templates [11] => /test.php [12] => /testing.html [13] => /upload [14] => /wysiwyg )
И значит, что нужно учитывать и такой вариант.
Wanderer, а у меня на двух серверах $list такой какой я указал выше… и ?
Wanderer, причем тут вариант?
В строке которой идет проверка с массивом $list проверяется только имя файла $dir[1], без директории $dir[0], хотя в самом массиве $list в полученных значениях директории присутствуют.
И как оно может быть равно? В итоге получаем постоянное false.
Мне просто интересно как это могло сработать у lezginka.ru
Тут интересная ситуация:if ($account['path']) {
$root = ftp_chdir($connection, $account['path']);
if (!$root) {
cmsUser::addSessionMessage(sprintf(LANG_CP_FTP_NO_ROOT, $account['path'], 'error');
return false;
}
}
Получается, есть еще один вариант возврата nlist
.......
должно быть так:
<?php $host = 'localhost'; //указать адрес сервера $user = 'anonymous'; // логин $pass = ''; //пароль $path = '/www'; //путь к папке сервера $is_pasv = true; //пассивный режим. Если не подключается, поменять на false if (!$connection) { echo '<pre>Неверный адрес сервера, либо сервер не отвечает</pre>'; return; } echo '<pre>Сервер найден</pre>'; if (!$session) { echo '<pre>Не удалось авторизоваться с указанными логином/паролем</pre>'; return; } echo '<pre>Подключение выполнено успешно</pre>'; if ($is_pasv) { } if ($list === false) { echo '<pre>Возвращен пустой список файлов</pre>'; return; } echo '<pre>'; echo '</pre>'; ?>
Сервер найден Подключение выполнено успешно ( [0] => .htaccess [1] => bootstrap.php [2] => credits.txt [3] => cron.php [4] => index.php [5] => license.en.txt [6] => license.ru.txt [7] => readme.txt [8] => testftp.php )
private function checkDestination($connection, $account){ if ($list === false) { return false; } foreach($check_dirs as $dir){ return false; } } return true; }
private function checkDestination($connection, $account) { $ftp_path = 'ftp://' . $account['host'] . $account['path']; foreach ($check_dirs as $dir) { if ($list == false) { return false; } return false; } } return true; }