Мне необходимо с одного сервера, закачать файлы на другой при этом следать это автоматически, а не в ручную.
Помогите с принципами создания.
Заранее благодарен.
Спустя 1 час, 2 минуты, 33 секунды (10.10.2006 - 09:50) Gandjubas написал(а):
QUOTE(Patrick)
Кто нибудь делал подобную вещь?
Мне необходимо с одного сервера, закачать файлы на другой при этом следать это автоматически, а не в ручную.
Помогите с принципами создания.
Заранее благодарен.
Мне необходимо с одного сервера, закачать файлы на другой при этом следать это автоматически, а не в ручную.
Помогите с принципами создания.
Заранее благодарен.
Я тоже этим занимаюсь, но пока далеко не ушёл!
Сейчас занимаюсь созданием FTP-сервером. А потом уж видно будет, как работать!
Так что давай делиться опытом:)
Спустя 1 час, 17 минут, 6 секунд (10.10.2006 - 11:07) Patrick написал(а):
Gandjubas,
Давай.:) Мне FTP клиент нужен для автоматической установки CMS, так что у меня задачка наверное по проще будет, а FTP сервер тоже на php ?
Давай.:) Мне FTP клиент нужен для автоматической установки CMS, так что у меня задачка наверное по проще будет, а FTP сервер тоже на php ?
Спустя 59 минут, 32 секунды (10.10.2006 - 12:06) Gandjubas написал(а):
нет.
он на каком-то другом языке!
он на каком-то другом языке!
Спустя 1 день, 20 часов, 24 минуты, 8 секунд (12.10.2006 - 08:30) Patrick написал(а):
Gandjubas, Так а клиент на php ?
Спустя 1 час, 13 минут, 52 секунды (12.10.2006 - 09:44) Gandjubas написал(а):
QUOTE(Patrick)
Gandjubas, Так а клиент на php ?
ну естессно на ПиЭйчПи!
только мне ФТП нужен для закачки именно. та что у меня упрошённая версия клинте получится.
Спустя 2 дня, 2 часа, 25 минут, 18 секунд (14.10.2006 - 12:09) Patrick написал(а):
Gandjubas,
Надо как то через асю поговорить т.к. у меня много вопросов имеется.
Я собираюсь сделать( а точней делаю) что то вроде сервиса _www.use-it-now.com только для своей CMS. Что то уже сделано,что то ищё нет.:)
Надо как то через асю поговорить т.к. у меня много вопросов имеется.
Я собираюсь сделать( а точней делаю) что то вроде сервиса _www.use-it-now.com только для своей CMS. Что то уже сделано,что то ищё нет.:)
Спустя 1 день, 22 часа, 40 минут, 4 секунды (16.10.2006 - 10:50) Gandjubas написал(а):
QUOTE(Patrick)
Gandjubas,
Надо как то через асю поговорить т.к. у меня много вопросов имеется.
Я собираюсь сделать( а точней делаю) что то вроде сервиса _www.use-it-now.com только для своей CMS. Что то уже сделано,что то ищё нет.:)
Надо как то через асю поговорить т.к. у меня много вопросов имеется.
Я собираюсь сделать( а точней делаю) что то вроде сервиса _www.use-it-now.com только для своей CMS. Что то уже сделано,что то ищё нет.:)
Через Асю не получится.
У меня тоже много вопросов. Сейчас меня тормозит то, что нет сети - пока не провели ко мне. Так бы я что-то делал. А на Денвере не уехать никак - не катит вообще с ФТП работать на нём. А апач ставить себе долго.
Спустя 21 час, 38 минут, 11 секунд (17.10.2006 - 08:28) Patrick написал(а):
:) Поставте Linux и lampp
Спустя 42 минуты, 39 секунд (17.10.2006 - 09:10) Gandjubas написал(а):
QUOTE(Patrick)
:) Поставте Linux и lampp
Ну и шутник.
Спустя 1 час, 8 минут, 6 секунд (17.10.2006 - 10:18) zilogo написал(а):
QUOTE
Поставте Linux и lampp
Т.е. поставить линукс, потом еще линукс ... это как ?:D
Спустя 48 минут, 45 секунд (17.10.2006 - 11:07) Patrick написал(а):
lampp - я имею ввиду пакет, аля денвер.
Спустя 45 минут, 3 секунды (17.10.2006 - 11:52) Gandjubas написал(а):
QUOTE(Patrick)
lampp - я имею ввиду пакет, аля денвер.
а где таковой нати пакетик?
Спустя 6 часов, 10 секунд (17.10.2006 - 17:52) Patrick написал(а):
__http://www.apachefriends.org/en/xampp.html
Спустя 6 минут, 40 секунд (17.10.2006 - 17:59) pavel написал(а):
Тут http://rst.void.ru/index.php?page=releases есть скрипт для переноса информации по ftp между серверами. Написан на PHP.
Смотрите, может поможет...
Смотрите, может поможет...
Спустя 13 дней, 15 часов, 5 минут, 3 секунды (31.10.2006 - 10:04) Gandjubas написал(а):
Ну как дела продвигаются!
Я тут по ссылочке сходил. Про файл r57shell.php - или что-то вроде того. Так там так много прикольного :) И там есть пример закачки с одного сервера на другой.
На его основе у меня возник такой ништячный концепт.
интерфейс по типу тотал командера, только придётся воспользоваться Джавой скриптом.
Поскольку у меня сеточки так и не появилась, то далеко в реализации своих идей я не ушёл. :(
Но идеями могу поделиться - пиши в аську 224941341
Я тут по ссылочке сходил. Про файл r57shell.php - или что-то вроде того. Так там так много прикольного :) И там есть пример закачки с одного сервера на другой.
На его основе у меня возник такой ништячный концепт.
интерфейс по типу тотал командера, только придётся воспользоваться Джавой скриптом.
Поскольку у меня сеточки так и не появилась, то далеко в реализации своих идей я не ушёл. :(
Но идеями могу поделиться - пиши в аську 224941341
Спустя 4 минуты, 37 секунд (31.10.2006 - 10:09) dreadboy написал(а):
о господи! господа!? у меня ушло 5 минут на ftp-клиент!
http://ru2.php.net/manual/ru/ref.ftp.php
и всё!
http://ru2.php.net/manual/ru/ref.ftp.php
и всё!
Спустя 2 часа, 40 минут, 3 секунды (31.10.2006 - 12:49) Gandjubas написал(а):
QUOTE(dreadboy)
о господи! господа!? у меня ушло 5 минут на ftp-клиент!
http://ru2.php.net/manual/ru/ref.ftp.php
и всё!
http://ru2.php.net/manual/ru/ref.ftp.php
и всё!
И что ты нам ссылку на ДОК дал?
У меня есть доки и у Питрика, тоже, думаеца.
Если бы ты сам клиент кинул.
И тем более нам нужен с вэб интерфейсом, человеческим. А не так как с командной строкой!
И не надо так убиваться (о, Господи!) - есть на свете и маньяки!
Спустя 13 минут, 49 секунд (31.10.2006 - 13:03) dreadboy написал(а):
пардон, но там в примерах и так всё ясно.<br><br>ну держи:<br>
остальное за деньги.
<?php $ftp_server = "ftp.somedomain.zone"; //Сервер, к которому будет произведено подключение по 21 порту. $ftp_user = "userlogin"; //Логин для входа на сервер. $ftp_pass = "password"; //Пароль для входа на сервер, соответствующий логину. //Подключаемся к серверу или умираем с ошибкой $conn_id = ftp_connect($ftp_server) or die("Не удалось установить соединение с $ftp_server"); // попытка входа if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) { echo "Произведен вход на $ftp_server под именем $ftp_user "; } else { echo "Не удалось войти под именем $ftp_user "; } ftp_chdir($conn_id,"www"); //переходим в необходимую папку. $files = ftp_nlist($conn_id,"/www"); //выводим её содержимое в массив. $i=0; foreach ($files as $key=>$file) { $file = substr($file,strrpos($file,"/")+1); if ($file != "." && $file != "..") { $i++; echo $i.". <a href="javascript:window.opener.document.forms[0].file.value='$file';close();">$file</a> "; } } // close the connection ftp_close($conn_id); ?>
остальное за деньги.
Спустя 3 минуты, 37 секунд (31.10.2006 - 13:06) Gandjubas написал(а):
QUOTE(dreadboy)
остальное за деньги.
:lol:
ржу, немагу!
Спустя 12 минут, 38 секунд (31.10.2006 - 13:19) md5 написал(а):
dreadboy,
мне кажется тут люди говорят о написании ftp клиента, который будет иметь web интерфейс, чтобы юзер сам без труда вводить адрес, логин пароль, переходить по папкам, конечно же чтобы он не писал ftp_chdir($conn_id,"www"); чтобы перейти в папку ввв..
и твои понты выглядят не очень корректно..
мне кажется тут люди говорят о написании ftp клиента, который будет иметь web интерфейс, чтобы юзер сам без труда вводить адрес, логин пароль, переходить по папкам, конечно же чтобы он не писал ftp_chdir($conn_id,"www"); чтобы перейти в папку ввв..
и твои понты выглядят не очень корректно..
Спустя 45 минут, 4 секунды (31.10.2006 - 14:04) dreadboy написал(а):
QUOTE(md5)
dreadboy,
мне кажется тут люди говорят о написании ftp клиента, который будет иметь web интерфейс, чтобы юзер сам без труда вводить адрес, логин пароль, переходить по папкам, конечно же чтобы он не писал ftp_chdir($conn_id,"www"); чтобы перейти в папку ввв..
и твои понты выглядят не очень корректно..
мне кажется тут люди говорят о написании ftp клиента, который будет иметь web интерфейс, чтобы юзер сам без труда вводить адрес, логин пароль, переходить по папкам, конечно же чтобы он не писал ftp_chdir($conn_id,"www"); чтобы перейти в папку ввв..
и твои понты выглядят не очень корректно..
пардон, а что мешает модернизировать данный код, для того чтобы юзер сам вводил логин, пасс и прочее?
даже чтоб юзер сам мог вводить сервер.
в данном примере очень хорошо показанно, как работать с фтп, средствами пхп.
а если php-программист не знает, как обрабатывать $_POST и $_GET массивы... ну это уже не в эту ветку ему надо.
повторюсь, я совершенно не вижу проблем, в написании обертки к этому скрипту, которая будет обрабатывать ссылки вида: myftpclient.zone/ftp.php?host=ftp.somehost.zone&user=user&login=login&path=path.
и уже потом делать коннект к $_GET['host'], с данными $_GET['user'] и $_GET['pass'], а затем делать по необходимости ftp_chdir($conn_id,$_GET['path']);
хотя в идеале хост, логин и пасс хранить в сессии ($_SESSION[]), а $_GET['path'] предворительно проверять на валидность... ну это в идеале.
з.ы. 2md5: а где тут понты?
Спустя 22 минуты, 20 секунд (31.10.2006 - 14:26) Gandjubas написал(а):
QUOTE(dreadboy)
а если php-программист не знает, как обрабатывать $_POST и $_GET массивы... ну это уже не в эту ветку ему надо.
Обёртка, как вы пожелали выразиться, - это не проблема!
Нам нужен был именно интерфейс и адекватность системы на нажатие той или иной кнопочки.
По поводу паролей и всех других данных - так это по умолчанию. Во всяком случаем мне это не надо потому, как у меня два пользователя: юзер и модер, и сервер один. Но для развития собственного напишем и этот модуль.
Мы уже скооперировались с патриком. :о)
Спустя 7 минут, 58 секунд (31.10.2006 - 14:34) zilogo написал(а):
Хм, я не совсем понимаю идею данного клиента. Предпологается, что человек будет с одного своего сайта переносить контент на другой ?
Спустя 4 минуты, 33 секунды (31.10.2006 - 14:39) dreadboy написал(а):
QUOTE(Gandjubas)
QUOTE(dreadboy)
а если php-программист не знает, как обрабатывать $_POST и $_GET массивы... ну это уже не в эту ветку ему надо.
Обёртка, как вы пожелали выразиться, - это не проблема!
Нам нужен был именно интерфейс и адекватность системы на нажатие той или иной кнопочки.
По поводу паролей и всех других данных - так это по умолчанию. Во всяком случаем мне это не надо потому, как у меня два пользователя: юзер и модер, и сервер один. Но для развития собственного напишем и этот модуль.
Мы уже скооперировались с патриком. :о)
хм... тогда темка-ка как-то не в той ветке по-моему...
Спустя 38 минут, 5 секунд (31.10.2006 - 15:17) Gandjubas написал(а):
QUOTE(zilogo)
Хм, я не совсем понимаю идею данного клиента. Предпологается, что человек будет с одного своего сайта переносить контент на другой ?
Я пишу для ftp-сервака. И контент я трогать не буду.
это для закачки, выкачки, переименования, модерирования и т.п. действий с фильмами, музыкой, софтом и т.д.
Спустя 1 час, 44 минуты, 58 секунд (31.10.2006 - 17:02) md5 написал(а):
QUOTE
з.ы. 2md5: а где тут понты?
QUOTE
о господи! господа!? у меня ушло 5 минут на ftp-клиент!
http://ru2.php.net/manual/ru/ref.ftp.php
и всё!
http://ru2.php.net/manual/ru/ref.ftp.php
и всё!
QUOTE
пардон, а что мешает модернизировать данный код, для того чтобы юзер сам вводил логин, пасс и прочее? даже чтоб юзер сам мог вводить сервер.
пардон, это не "5" минут..
Спустя 1 час, 52 минуты, 11 секунд (31.10.2006 - 18:54) Gandjubas написал(а):
QUOTE(md5)
пардон, это не "5" минут..
Господа! Мы все тут культурные люди! И без понтов. Просто иногда не понимаем и не принимаем ошибок, которые совершали сами когда-то!
Спустя 5 дней, 15 часов, 4 минуты, 45 секунд (7.11.2006 - 09:59) Gandjubas написал(а):
Господа, а можно ли с одного фтп-сервера закачать на другой? Чувтсвую, что можно, а как не понимаю. Не очень соображу. Читал мануал несколько раз - много думал :)
И ещё один проблем есть! Как со своего компа за которым сидишь закачать 700 и более метров? Юзать вэб-сервер не прокатит. Во всяком случае ПОСТОМ а тем более ГЕТОМ точно не пройдёт. а как другим способом - не пойму. Опытные пользователи, к вам обращаюсь.!!! Поможите!!!
И ещё один проблем есть! Как со своего компа за которым сидишь закачать 700 и более метров? Юзать вэб-сервер не прокатит. Во всяком случае ПОСТОМ а тем более ГЕТОМ точно не пройдёт. а как другим способом - не пойму. Опытные пользователи, к вам обращаюсь.!!! Поможите!!!
Спустя 14 минут, 27 секунд (7.11.2006 - 10:13) dreadboy написал(а):
с фтп на фтп можно.
сча это и делаю :)
на одном серваке (с которого копировать) создаешь файлу с функциями коннекта и копирования.
с локальной машины:
убиваешь прокси, ставишь апач и пхп и запускаешь свой скрипт.
сча это и делаю :)
на одном серваке (с которого копировать) создаешь файлу с функциями коннекта и копирования.
с локальной машины:
убиваешь прокси, ставишь апач и пхп и запускаешь свой скрипт.
Спустя 4 минуты, 26 секунд (7.11.2006 - 10:18) dreadboy написал(а):
Спустя 1 час, 1 минута, 11 секунд (7.11.2006 - 11:19) zilogo написал(а):
QUOTE
Как со своего компа за которым сидишь закачать 700 и более метров?
? А почему FTP клиент не использовать (не на пхп) ?
Спустя 7 минут, 22 секунды (7.11.2006 - 11:26) Gandjubas написал(а):
QUOTE(dreadboy)
с фтп на фтп можно.
сча это и делаю :)
на одном серваке (с которого копировать) создаешь файлу с функциями коннекта и копирования.
с локальной машины:
убиваешь прокси, ставишь апач и пхп и запускаешь свой скрипт.
сча это и делаю :)
на одном серваке (с которого копировать) создаешь файлу с функциями коннекта и копирования.
с локальной машины:
убиваешь прокси, ставишь апач и пхп и запускаешь свой скрипт.
Первое понял как делать вроде. То есть сервер должен быть и вэб и фтп?
А про локалку. Каждому юзверю придётся ставить апач и пхп?
Иначе нельзя?
Или проще фтп-клиент обычный им юзать?
Спустя 4 минуты, 52 секунды (7.11.2006 - 11:31) Gandjubas написал(а):
QUOTE(zilogo)
QUOTE
Как со своего компа за которым сидишь закачать 700 и более метров?
? А почему FTP клиент не использовать (не на пхп) ?
Просто хотелось прикрутить фтп-сервер к форуму. Чтобы кинул файло и коммент сразу к ниму. Обсудить фильмец и тп (игры, софт)
Спустя 38 минут, 29 секунд (7.11.2006 - 12:10) dreadboy написал(а):
QUOTE(Gandjubas)
QUOTE(dreadboy)
с фтп на фтп можно.
сча это и делаю :)
на одном серваке (с которого копировать) создаешь файлу с функциями коннекта и копирования.
с локальной машины:
убиваешь прокси, ставишь апач и пхп и запускаешь свой скрипт.
сча это и делаю :)
на одном серваке (с которого копировать) создаешь файлу с функциями коннекта и копирования.
с локальной машины:
убиваешь прокси, ставишь апач и пхп и запускаешь свой скрипт.
Первое понял как делать вроде. То есть сервер должен быть и вэб и фтп?
А про локалку. Каждому юзверю придётся ставить апач и пхп?
Иначе нельзя?
Или проще фтп-клиент обычный им юзать?
да. обычный фтп.
Спустя 2 часа, 59 минут, 45 секунд (7.11.2006 - 15:09) Gandjubas написал(а):
а можно пример скачки одного на другой!?
просто код и как отследить скачалось или нет?
ещё такой нюанс интересует: есть время выполнения(и фтп команды и пхп процесса). Как бы уложиться в это время, ведь 700 и более метров за стандартные 90 секунд не сплавить!
просто код и как отследить скачалось или нет?
ещё такой нюанс интересует: есть время выполнения(и фтп команды и пхп процесса). Как бы уложиться в это время, ведь 700 и более метров за стандартные 90 секунд не сплавить!
Спустя 36 минут, 57 секунд (7.11.2006 - 15:46) dreadboy написал(а):
за 90 может успеть.
у меня за 30 - 353 метра зафигячил.
всё. а дальше надо отрубать safe_mode. иначе попа.
у меня за 30 - 353 метра зафигячил.
всё. а дальше надо отрубать safe_mode. иначе попа.
Спустя 16 минут, 47 секунд (7.11.2006 - 16:03) Gandjubas написал(а):
QUOTE(dreadboy)
всё. а дальше надо отрубать safe_mode. иначе попа.
почему попа?
и можно всё таки малнький примерчик. а то набор функций достаточно скудный, а какими пользоваться не знаю. заблокированная передача или нет :/
Спустя 37 минут, 34 секунды (7.11.2006 - 16:41) dreadboy написал(а):
ftp_put юзай.
Спустя 3 часа, 22 минуты, 19 секунд (7.11.2006 - 20:03) Patrick написал(а):
Вот и я вернулся...
Всё по теме, лично у меня проблема тока одна показ логальныйх папок... Через веб интерфейс, незнаю смжет ли это сделать JS.
Всё по теме, лично у меня проблема тока одна показ логальныйх папок... Через веб интерфейс, незнаю смжет ли это сделать JS.
Спустя 14 часов, 5 минут, 16 секунд (8.11.2006 - 10:08) Gandjubas написал(а):
QUOTE(Patrick)
Вот и я вернулся...
Всё по теме, лично у меня проблема тока одна показ логальныйх папок... Через веб интерфейс, незнаю смжет ли это сделать JS.
Всё по теме, лично у меня проблема тока одна показ логальныйх папок... Через веб интерфейс, незнаю смжет ли это сделать JS.
Он всё сможет.
По всему вышесказанному - возникла очень большая проблема! Как не юзаю фтп-клиент(обычный), залить 700 и более метров на фтп-сервер. Постом не пройдёт. а если и пройдёт. так во время слива все остальные пользователи будут сосать палец! Надо как-то решать эту проблему!
Спустя 2 часа, 32 минуты, 56 секунд (8.11.2006 - 12:41) Patrick написал(а):
Gandjubas, Постом мне кажётся пойдёт. Или я в чём то неправ? а из=за чнго пользователи будут сосать палец?
Спустя 14 минут, 53 секунды (8.11.2006 - 12:56) Gandjubas написал(а):
QUOTE(Patrick)
Gandjubas, Постом мне кажётся пойдёт. Или я в чём то неправ? а из=за чнго пользователи будут сосать палец?
Так ты сколько будешь заливать постом?
во-первых, есть такая директива max_upload_files, max_post_size, max_mail_size - и как ты их обойдёшь? там максимум 8 метров
а сосать палец бедет потому, что вэб сервер настроен на высокий приоритет процессов. и он пока будет загружать файл, все остальные процессы, или приостановятся или будут идти еле-еле!
Спустя 32 минуты, 34 секунды (8.11.2006 - 13:29) Patrick написал(а):
Gandjubas,Блин кисляк. На ум приходят тока cредства JS. Но вот как тока вопросик?
Спустя 3 минуты, 42 секунды (8.11.2006 - 13:32) Gandjubas написал(а):
QUOTE(Patrick)
Gandjubas,Блин кисляк. На ум приходят тока cредства JS. Но вот как тока вопросик?
по этому поводу я завёл здесь вторую тему. называется отправка файла через 21 порт
Спустя 2 месяца, 11 дней, 1 час, 22 минуты, 43 секунды (19.01.2007 - 14:55) Gandjubas написал(а):
Люди!
А возможно ли средствами PHP загрузить на сервер с локальной машины большой файл (размер больше max_upload_filesize или как-то так)?
Какими-нибудь функциями FTP!
Меня заставили задуматься и тем самым смутили!!!
А возможно ли средствами PHP загрузить на сервер с локальной машины большой файл (размер больше max_upload_filesize или как-то так)?
Какими-нибудь функциями FTP!
Меня заставили задуматься и тем самым смутили!!!
Спустя 4 минуты, 55 секунд (19.01.2007 - 15:00) md5 написал(а):
Gandjubas,
подними на локале ftp сервер, попробуй
подними на локале ftp сервер, попробуй
Спустя 24 минуты, 38 секунд (19.01.2007 - 15:25) Gandjubas написал(а):
md5,
нет. Мне необходимо без установки чего-либо на локальной машине. Только браузер (можно только к какому-то привязаться, но это для PHP без разницы)
нет. Мне необходимо без установки чего-либо на локальной машине. Только браузер (можно только к какому-то привязаться, но это для PHP без разницы)
Спустя 37 минут, 37 секунд (19.01.2007 - 16:02) md5 написал(а):
нет
Спустя 1 час, 18 минут, 16 секунд (19.01.2007 - 17:20) levis написал(а):
Или я непонимаю ситуацию или....
Можа разбить файл на части и потом склеить?
QUOTE
А возможно ли средствами PHP загрузить на сервер с локальной машины большой файл
Можа разбить файл на части и потом склеить?
Спустя 1 час, 35 минут, 3 секунды (19.01.2007 - 18:55) Patrick написал(а):
levis, ситуация именно такая. Разбить файл этак 600 метров!
Спустя 5 часов, 40 минут, 17 секунд (20.01.2007 - 00:36) levis написал(а):
траблы вашей увы подробностях не знаю,но ребята вы смышленные сумеете построить код под себя <br><br><b>эта разбивка---все работает проверил</b><br><br>
----это склейка-тоже проверил работает
Если по коду че непонятно спрашиваем!:)
$fn="file.rar";//имя файла $damage="10000";//размер частей $open=fopen($fn,"r"); $read=fread($open,filesize($fn)); fclose($open); $c=(int)filesize($fn)/$damage; if((float)(filesize($fn)/$damage)-$c !=0)$count++; for($i=0;$i<$c;++$i) { $index=substr($read,$i*$damage,$damage); $fp=fopen("file.mob".$i,"w"); fwrite($fp,$index); }
----это склейка-тоже проверил работает
$read=""; for($i=0;$i < 100000;++$i) { $fn="file.mob".$i; if(file_exists($fn)) { $fp=fopen($fn,"r"); $read.=fread($fp,filesize($fn)); fclose($fp); } else {break;} $fp=fopen("end.rar","w"); fwrite($fp,$read); }
Если по коду че непонятно спрашиваем!:)
Спустя 1 час, 25 минут, 37 секунд (20.01.2007 - 02:01) Patrick написал(а):
levis, а вы из браузера на сервак, залейте! Проблема заключается как из браузера заливать файлы большого объёма! На серваке то просто...
Спустя 7 часов, 24 минуты, 23 секунды (20.01.2007 - 09:26) levis написал(а):
а для чего по вашему этот скрипт
Спустя 3 часа, 11 минут, 34 секунды (20.01.2007 - 12:37) Patrick написал(а):
levis, Ты помоему не помимаешь суть, вопроса! На серваке с файлами делать ничего не надо. Надо залить их туда причём POST`ом! Попробуй залить POST`ом файл размером 50м! Хотя бы!
Спустя 1 день, 5 часов, 36 минут, 2 секунды (21.01.2007 - 18:13) Первак написал(а):
А с помощью php можно зайти на любой ftp сервер?<br>У меня на народе сайт, а с h10.ru зайти не получается:<br><br>
ftp_server="ftp.narod.ru"; $ftp_user_name="xxxxxxxx"; $ftp_user_pass="xxxxxxxxxx"; // установка соединения $conn_id = ftp_connect($ftp_server); if($conn_id) { echo"Fuck you!!!"; } else { echo"I love you"; } // вход с именем пользователя и паролем $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // проверка соединения if ((!$conn_id) || (!$login_result)) { echo "Не удалось установить соединение с FTP сервером!"; echo "Попытка подключения к серверу $ftp_server под именем $ftp_user_name!"; exit; } else { echo "Установлено соединение с FTP сервером $ftp_server под именем $ftp_user_name"; } // чтение каталога $dir = opendir ('.'); echo 'Files: '; while ($file = readdir ($dir)) { echo"$file "; } closedir ($dir); ftp_quit($conn_id);
Спустя 3 минуты, 7 секунд (21.01.2007 - 18:16) Patrick написал(а):
Первак,Можно а разве на народе FTP даётся?
Спустя 2 минуты, 26 секунд (21.01.2007 - 18:19) Первак написал(а):
Patrick, да:) конечно.
Но у меня не получается чёто.
Но у меня не получается чёто.
Спустя 2 минуты, 29 секунд (21.01.2007 - 18:21) Первак написал(а):
Patrick, не сам ftp хостинг, а доступ по ftp.
Спустя 9 секунд (21.01.2007 - 18:22) Patrick написал(а):
<b>Первак</b>,<br> $dir = opendir ('.') - а это что за порнография???? Для начало надо ман, почитать, а потом писать...<br>
И вот тебе примерчик...
<?php // установка соединения $conn_id = ftp_connect($ftp_server); // вход с именем пользователя и паролем $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); // проверка соединения if ((!$conn_id) || (!$login_result)) { die("Не удалось подключиться к FTP серверу!"); } echo "Текущая директория: " . ftp_pwd($conn_id) . " "; // попытка сделать somedir текущей if (ftp_chdir($conn_id, "somedir")) { echo "Новая текущая директория: " . ftp_pwd($conn_id) . " "; } else { echo "Не удалось сменить директорию "; } // закрытие соединения ftp_close($conn_id); ?>
И вот тебе примерчик...
Спустя 4 минуты, 26 секунд (21.01.2007 - 18:26) Первак написал(а):
тоже самое
Warning: ftp_login() expects parameter 1 to be resource, boolean given in /home/w/webstarphp.h10.ru/WWW/test1.php on line 14
Не удалось подключиться к FTP серверу!
Warning: ftp_login() expects parameter 1 to be resource, boolean given in /home/w/webstarphp.h10.ru/WWW/test1.php on line 14
Не удалось подключиться к FTP серверу!
Спустя 1 час, 23 минуты, 7 секунд (21.01.2007 - 19:49) Patrick написал(а):
Первак, http://ru.php.net/ftp_login
Спустя 3 часа, 59 минут, 49 секунд (21.01.2007 - 23:49) Первак написал(а):
Да я уже все мануалы прочитал - ничё не получается, уже пароль, логин и сервер проверил - нефига.
По тем же паролям через фтп менеджер конектится, а через пхп не хочит.
Может на народе какаято защита стоит?
По тем же паролям через фтп менеджер конектится, а через пхп не хочит.
Может на народе какаято защита стоит?
Спустя 13 минут, 3 секунды (22.01.2007 - 00:02) Patrick написал(а):
Первак, Защита врядли, а есть поддержка ftp в твоей сборке php ?
Спустя 5 минут, 37 секунд (22.01.2007 - 00:08) Первак написал(а):
holm.ru - написано
QUOTE
FTP доступ к вашему виртуальному серверу
Спустя 7 минут, 8 секунд (22.01.2007 - 00:15) Patrick написал(а):
<b>Первак</b>, Причём тут holm.ru создаёшь файл phponfo.php там пишешь
<?php phpinfo();?>и ищещь строчку FTP support enabled... + к тому же поддержку ftp насколько я помню там надо включать через админку...
Спустя 21 минута, 1 секунда (22.01.2007 - 00:36) Первак написал(а):
Написал - выдало мне всю инфу про пхп - и чё найти теперь надо?
Спустя 1 минута, 35 секунд (22.01.2007 - 00:37) Первак написал(а):
FTP support - enabled - типа поддержуется
Спустя 7 месяцев, 27 дней, 11 часов, 55 минут, 40 секунд (19.09.2007 - 11:33) _555 написал(а):
доброго времени суток!!!
помогите пожалуйста пеерделать скрипт... в данный момент он копирует папки со влажением с фтп на другой фтп. задача зделать чтобы можно было им качать просто файлы указывая адрес файла на сервере вот исходный вариант:
<?php
function getchmod($perm)
{
$chmod = 0;
if($perm[0] == "r") $chmod = $chmod+0400;
if($perm[1] == "w") $chmod = $chmod+0200;
if($perm[2] == "x") $chmod = $chmod+0100;
if($perm[3] == "r") $chmod = $chmod+0040;
if($perm[4] == "w") $chmod = $chmod+0020;
if($perm[5] == "x") $chmod = $chmod+0010;
if($perm[6] == "r") $chmod = $chmod+0004;
if($perm[7] == "w") $chmod = $chmod+0002;
if($perm[8] == "x") $chmod = $chmod+0001;
return $chmod;
}
function copy_dir($ftp_from,$ftp_to,$dir_from,$dir_to,$perm,$lev)
{
echo str_repeat("|",$lev-1)."-Создание <b>$dir_to</b>..."; flush();
$no_errors = true;
$dir_list_to = explode("/",$dir_to);
foreach($dir_list_to as $dir)
{ $dir_exist = false;
$dir_list = ftp_rawlist($ftp_to,".");
foreach($dir_list as $file)
if($file[0] == "d" && substr($file,strrpos($file," ")+1) == $dir)
{ $dir_exist = true;
break;
}
if($dir_exist) $no_errors = ($no_errors &&
ftp_site($ftp_to,"chmod 0777 $dir") &&
ftp_chdir($ftp_to,$dir));
else $no_errors = ($no_errors &&
is_string(ftp_mkdir($ftp_to,$dir)) &&
ftp_site($ftp_to,"chmod 0777 $dir") &&
ftp_chdir($ftp_to,$dir));
}
if($no_errors) echo" OK<br>";
else echo"<b> Error!</b><br>";
flush();
if(ftp_chdir($ftp_from,$dir_from))
echo str_repeat("|",$lev-1)."-Переход в <b>$dir_to</b><br>";
else echo str_repeat("|",$lev-1)."-<b>Error:</b> Ошибка перехода в <b>$dir_to</b><br>";
flush();
echo str_repeat("|",$lev)."-Чтение содержимого <b>$dir_from</b><br>";
flush();
$dir_list = ftp_rawlist($ftp_from,".");
foreach($dir_list as $file)
if($file[0] == "-")
{ $fperm = substr($file,1,9);
$fname = substr($file,strrpos($file," ")+1);
$chmod = getchmod($fperm);
echo str_repeat("|",$lev)."--Копирование файла <b>$fname</b>..."; flush();
if((@ftp_get($ftp_from,"tf.jpg",$fname,FTP_BINARY) ||
@ftp_get($ftp_from,"tf.jpg",$fname,FTP_ASCII)) &&
(@ftp_put($ftp_to,$fname,"tf.jpg",FTP_BINARY) ||
@ftp_put($ftp_to,$fname,"tf.jpg",FTP_ASCII)) &&
ftp_site($ftp_to,"chmod ".base_convert($chmod,10,8)." $fname") &&
unlink("tf.jpg")) echo" OK<br>";
else echo"<b> Error!</b><br>";
}
foreach($dir_list as $file)
if($file[0] == "d")
{ set_time_limit(600);
$fperm = substr($file,1,9);
$fname = substr($file,strrpos($file," ")+1);
if($fname <> "." && $fname <> "..")
{ echo str_repeat("|",$lev)."-Копирование дирректории <b>$fname</b>...<br>"; flush();
copy_dir($ftp_from,$ftp_to,$fname,$fname,$fperm,$lev+1);
}
}
echo str_repeat("|",$lev)."-Переход <b>наверх</b>..."; flush();
for($j = 0; $j <= substr_count($dir_to,"/"); $j++)
ftp_cdup($ftp_to);
if(ftp_cdup($ftp_from)) echo" OK<br>";
else echo"<b> Error!</b><br>";
flush();
$chmod = getchmod($perm);
if(ftp_site($ftp_to,"chmod ".base_convert($chmod,10,8)." ".$dir_to))
echo str_repeat("|",$lev)."-На <b>$dir_to</b> установлен chmod(0".base_convert($chmod,10,8).")<br>";
else echo str_repeat("|",$lev)."-<b>Error:</b> Ошибка установки chmod(0".base_convert($chmod,10,8).") на <b>$dir_to</b><br>";
flush();
}
if(empty($_POST)) {?>
<html>
<head>
<title></title>
<script language='JavaScript'>
var kop_on = new Image(); kop_on.src = 'kop_on.jpg';
var kop_off = new Image(); kop_off.src = 'kop_off.jpg';
</script>
<script language='JavaScript'>
function procform()
{ var f = document.forms['cform'];
var rexp = /^[a-z_\d\-\.]{8,64}$/;
f.host_from.value = f.host_from.value.toLowerCase();
if (!rexp.test(f.host_from.value))
{ alert('Недопустимый FTP-сервер FROM');
return false;
}
f.host_to.value = f.host_to.value.toLowerCase();
if (!rexp.test(f.host_to.value))
{ alert('Недопустимый FTP-сервер TO');
return false;
}
rexp = /^[a-z_\d\-@!.]{1,32}$/;
f.user_from.value = f.user_from.value.toLowerCase();
if (!rexp.test(f.user_from.value))
{ alert('Недопустимый логин FROM');
return false;
}
f.user_to.value = f.user_to.value.toLowerCase();
if (!rexp.test(f.user_to.value))
{ alert('Недопустимый логин TO');
return false;
}
rexp = /^[a-zA-Z0-9@.]{4,32}$/;
if (!rexp.test(f.pass_from.value))
{ alert('Недопустимый пароль FROM');
return false;
}
if (!rexp.test(f.pass_to.value))
{ alert('Недопустимый пароль TO');
return false;
}
f.action = 'index.php';
return true;
}
</script>
</head>
<body bgcolor=#C4E1E1>
<form name="cform" action="index.php" method="post" onSubmit="return procform();">
<table width=80% align=center>
<tr>
<td width=50% align=center> FTP-адрес:
<input name="host_from" type="text" value="сервер с">
<br>
Логин: <input name="user_from" type="text" value="логин">
<br>
Пароль: <input name="pass_from" type="password" value="пароль">
<br><br>
c <br>
<textarea name="dir_list_from" rows=5 cols=50 wrap="off">путь фала на сервере</textarea>
</td>
<td align=center> FTP-адрес:
<input name="host_to" type="text" value="сервер в">
<br>
Логин: <input name="user_to" type="text" value="логин">
<br>
Пароль: <input name="pass_to" type="password" value="пароль">
<br><br>
n<br>
<textarea name="dir_list_to" rows=5 cols=50 wrap="off">путь куда ложить</textarea>
</td>
</tr>
</table>
<br>
<div align="center">
<input type=image src="kop_off.jpg" width=184 height=27 border=0 onMouseOver="this.src=kop_on.src" onMouseOut="this.src=kop_off.src" alt="КОПИРОВАТЬ">
</div>
</form>
</body>
</html>
<?php }else{
set_time_limit(5000);
$host_from = $_POST["host_from"];
$ip_from = @gethostbyname($host_from);
if($ip_from == $host_from) exit("Сервер <b>$host_from</b> НЕ найден.");
else
{ echo"Соединение с <b>$host_from</b> ($ip_from)..."; flush();
$ftp_handle_from = @ftp_connect($ip_from);
if (!$ftp_handle_from) exit(" Ошибка соединения!");
else echo" Соединение установлено.<br>";
echo"Авторизация <b>$host_from</b>..."; flush();
$user_from = $_POST["user_from"];
$pass_from = $_POST["pass_from"];
if(!@ftp_login($ftp_handle_from,$user_from,$pass_from)) { echo" Авторизация не удалась<br>";
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
exit(" Соединение закрыто."); flush();
}
else echo" ОK!<br>"; flush();
}
$host_to = $_POST["host_to"];
$ip_to = @gethostbyname($host_to);
if($ip_to == $host_to) { echo"Сервер <b>$host_to</b> НЕ найден.<br>";
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
exit(" Соединение закрыто."); flush();
}
else
{ echo"Соединение с <b>$host_to</b> ($ip_to)..."; flush();
$ftp_handle_to = @ftp_connect($ip_to);
if (!$ftp_handle_to) { echo" Ошибка соединения!<br>";
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
exit(" Соединение закрыто."); flush();
}
else echo" Соединение установлено.<br>";
echo"Авторизация <b>$host_to</b>..."; flush();
$user_to = $_POST["user_to"];
$pass_to = $_POST["pass_to"];
if(!@ftp_login($ftp_handle_to,$user_to,$pass_to)) { echo" Авторизация не удалась<br>";
echo"Выход <b>$host_to</b>..."; flush();
@ftp_quit($ftp_handle_to);
echo" Соединение закрыто.<br>"; flush();
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
exit(" Соединение закрыто."); flush();
}
else echo" ОK!<br>"; flush();
}
$dir_list_from = str_replace("\r\n","\n",$_POST["dir_list_from"]);
$dir_list_to = str_replace("\r\n","\n",$_POST["dir_list_to"]);
$dir_list_from = explode("\n",$dir_list_from);
$dir_list_to = explode("\n",$dir_list_to);
while(($dir_list_from[0] == "") && (sizeof($dir_list_from) > 1)) array_shift($dir_list_from);
while(($dir_list_to[0] == "") && (sizeof($dir_list_to) > 1)) array_shift($dir_list_to);
while($key = array_search("",$dir_list_from)) { unset($dir_list_from[$key]);
$dir_list_from = array_values($dir_list_from);
}
while($key = array_search("",$dir_list_to)) { unset($dir_list_to[$key]);
$dir_list_to = array_values($dir_list_to);
}
if($dir_list_from[0] == "")
echo"<b>Список дирректорий ОТ не должен быть пустым!</b><br>";
elseif($dir_list_to[0] == "")
echo"<b>Список дирректорий В не должен быть пустым!</b><br>";
elseif(($dir_co = sizeof($dir_list_from)) != sizeof($dir_list_to))
echo"<b>Количество дирректорий ОТ и дирректорий В должно быть одинаковым!</b><br>";
else
{ echo"<font face=\"Courier\">";
for($i = 0; $i < $dir_co; $i++)
{ $dir_list_from[$i] = str_replace("\\","/",$dir_list_from[$i]);
$dir_list_from[$i] = str_replace("//","/",$dir_list_from[$i]);
if($dir_list_from[$i][0] == "/") $dir_list_from[$i] = substr($dir_list_from[$i],1);
if($pos = strrpos($dir_list_from[$i],"/"))
{ $up_dir_from = substr($dir_list_from[$i],0,$pos);
$copy_dir_from = substr($dir_list_from[$i],$pos+1);
}
else
{ $up_dir_from = "";
$copy_dir_from = $dir_list_from[$i];
}
if($up_dir_from)
{ echo"Переход в ".$up_dir_from."..."; flush();
if(@ftp_chdir($ftp_handle_from,$up_dir_from))
echo" OK<br>";
else echo"<b> Error!</b><br>";
}
$dir_list = @ftp_rawlist($ftp_handle_from,".");
$perm = "";
foreach($dir_list as $file)
if($file[0] == "d" && substr($file,strrpos($file," ")+1) == $copy_dir_from)
{ $perm = substr($file,1,9);
break;
}
if(!$perm) { echo"Дирректория <b>".$dir_list_from[$i]."</b> не найдена!<br>"; flush(); }
else
{ echo"Копирование дирректории <b>".$dir_list_from[$i]."</b> в <b>".$dir_list_to[$i]."</b>...<br>"; flush();
copy_dir($ftp_handle_from,$ftp_handle_to,$copy_dir_from,$dir_list_to[$i],$perm,1);
}
for($j = 0; $j <= substr_count($up_dir_from,"/"); $j++)
@ftp_cdup($ftp_handle_from);
}
echo"</font>";
}
echo"Выход <b>$host_to</b>..."; flush();
@ftp_quit($ftp_handle_to);
echo" Соединение закрыто.<br>"; flush();
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
echo" Соединение закрыто."; flush();
}?>
буду очень признателен за помощь...
помогите пожалуйста пеерделать скрипт... в данный момент он копирует папки со влажением с фтп на другой фтп. задача зделать чтобы можно было им качать просто файлы указывая адрес файла на сервере вот исходный вариант:
<?php
function getchmod($perm)
{
$chmod = 0;
if($perm[0] == "r") $chmod = $chmod+0400;
if($perm[1] == "w") $chmod = $chmod+0200;
if($perm[2] == "x") $chmod = $chmod+0100;
if($perm[3] == "r") $chmod = $chmod+0040;
if($perm[4] == "w") $chmod = $chmod+0020;
if($perm[5] == "x") $chmod = $chmod+0010;
if($perm[6] == "r") $chmod = $chmod+0004;
if($perm[7] == "w") $chmod = $chmod+0002;
if($perm[8] == "x") $chmod = $chmod+0001;
return $chmod;
}
function copy_dir($ftp_from,$ftp_to,$dir_from,$dir_to,$perm,$lev)
{
echo str_repeat("|",$lev-1)."-Создание <b>$dir_to</b>..."; flush();
$no_errors = true;
$dir_list_to = explode("/",$dir_to);
foreach($dir_list_to as $dir)
{ $dir_exist = false;
$dir_list = ftp_rawlist($ftp_to,".");
foreach($dir_list as $file)
if($file[0] == "d" && substr($file,strrpos($file," ")+1) == $dir)
{ $dir_exist = true;
break;
}
if($dir_exist) $no_errors = ($no_errors &&
ftp_site($ftp_to,"chmod 0777 $dir") &&
ftp_chdir($ftp_to,$dir));
else $no_errors = ($no_errors &&
is_string(ftp_mkdir($ftp_to,$dir)) &&
ftp_site($ftp_to,"chmod 0777 $dir") &&
ftp_chdir($ftp_to,$dir));
}
if($no_errors) echo" OK<br>";
else echo"<b> Error!</b><br>";
flush();
if(ftp_chdir($ftp_from,$dir_from))
echo str_repeat("|",$lev-1)."-Переход в <b>$dir_to</b><br>";
else echo str_repeat("|",$lev-1)."-<b>Error:</b> Ошибка перехода в <b>$dir_to</b><br>";
flush();
echo str_repeat("|",$lev)."-Чтение содержимого <b>$dir_from</b><br>";
flush();
$dir_list = ftp_rawlist($ftp_from,".");
foreach($dir_list as $file)
if($file[0] == "-")
{ $fperm = substr($file,1,9);
$fname = substr($file,strrpos($file," ")+1);
$chmod = getchmod($fperm);
echo str_repeat("|",$lev)."--Копирование файла <b>$fname</b>..."; flush();
if((@ftp_get($ftp_from,"tf.jpg",$fname,FTP_BINARY) ||
@ftp_get($ftp_from,"tf.jpg",$fname,FTP_ASCII)) &&
(@ftp_put($ftp_to,$fname,"tf.jpg",FTP_BINARY) ||
@ftp_put($ftp_to,$fname,"tf.jpg",FTP_ASCII)) &&
ftp_site($ftp_to,"chmod ".base_convert($chmod,10,8)." $fname") &&
unlink("tf.jpg")) echo" OK<br>";
else echo"<b> Error!</b><br>";
}
foreach($dir_list as $file)
if($file[0] == "d")
{ set_time_limit(600);
$fperm = substr($file,1,9);
$fname = substr($file,strrpos($file," ")+1);
if($fname <> "." && $fname <> "..")
{ echo str_repeat("|",$lev)."-Копирование дирректории <b>$fname</b>...<br>"; flush();
copy_dir($ftp_from,$ftp_to,$fname,$fname,$fperm,$lev+1);
}
}
echo str_repeat("|",$lev)."-Переход <b>наверх</b>..."; flush();
for($j = 0; $j <= substr_count($dir_to,"/"); $j++)
ftp_cdup($ftp_to);
if(ftp_cdup($ftp_from)) echo" OK<br>";
else echo"<b> Error!</b><br>";
flush();
$chmod = getchmod($perm);
if(ftp_site($ftp_to,"chmod ".base_convert($chmod,10,8)." ".$dir_to))
echo str_repeat("|",$lev)."-На <b>$dir_to</b> установлен chmod(0".base_convert($chmod,10,8).")<br>";
else echo str_repeat("|",$lev)."-<b>Error:</b> Ошибка установки chmod(0".base_convert($chmod,10,8).") на <b>$dir_to</b><br>";
flush();
}
if(empty($_POST)) {?>
<html>
<head>
<title></title>
<script language='JavaScript'>
var kop_on = new Image(); kop_on.src = 'kop_on.jpg';
var kop_off = new Image(); kop_off.src = 'kop_off.jpg';
</script>
<script language='JavaScript'>
function procform()
{ var f = document.forms['cform'];
var rexp = /^[a-z_\d\-\.]{8,64}$/;
f.host_from.value = f.host_from.value.toLowerCase();
if (!rexp.test(f.host_from.value))
{ alert('Недопустимый FTP-сервер FROM');
return false;
}
f.host_to.value = f.host_to.value.toLowerCase();
if (!rexp.test(f.host_to.value))
{ alert('Недопустимый FTP-сервер TO');
return false;
}
rexp = /^[a-z_\d\-@!.]{1,32}$/;
f.user_from.value = f.user_from.value.toLowerCase();
if (!rexp.test(f.user_from.value))
{ alert('Недопустимый логин FROM');
return false;
}
f.user_to.value = f.user_to.value.toLowerCase();
if (!rexp.test(f.user_to.value))
{ alert('Недопустимый логин TO');
return false;
}
rexp = /^[a-zA-Z0-9@.]{4,32}$/;
if (!rexp.test(f.pass_from.value))
{ alert('Недопустимый пароль FROM');
return false;
}
if (!rexp.test(f.pass_to.value))
{ alert('Недопустимый пароль TO');
return false;
}
f.action = 'index.php';
return true;
}
</script>
</head>
<body bgcolor=#C4E1E1>
<form name="cform" action="index.php" method="post" onSubmit="return procform();">
<table width=80% align=center>
<tr>
<td width=50% align=center> FTP-адрес:
<input name="host_from" type="text" value="сервер с">
<br>
Логин: <input name="user_from" type="text" value="логин">
<br>
Пароль: <input name="pass_from" type="password" value="пароль">
<br><br>
c <br>
<textarea name="dir_list_from" rows=5 cols=50 wrap="off">путь фала на сервере</textarea>
</td>
<td align=center> FTP-адрес:
<input name="host_to" type="text" value="сервер в">
<br>
Логин: <input name="user_to" type="text" value="логин">
<br>
Пароль: <input name="pass_to" type="password" value="пароль">
<br><br>
n<br>
<textarea name="dir_list_to" rows=5 cols=50 wrap="off">путь куда ложить</textarea>
</td>
</tr>
</table>
<br>
<div align="center">
<input type=image src="kop_off.jpg" width=184 height=27 border=0 onMouseOver="this.src=kop_on.src" onMouseOut="this.src=kop_off.src" alt="КОПИРОВАТЬ">
</div>
</form>
</body>
</html>
<?php }else{
set_time_limit(5000);
$host_from = $_POST["host_from"];
$ip_from = @gethostbyname($host_from);
if($ip_from == $host_from) exit("Сервер <b>$host_from</b> НЕ найден.");
else
{ echo"Соединение с <b>$host_from</b> ($ip_from)..."; flush();
$ftp_handle_from = @ftp_connect($ip_from);
if (!$ftp_handle_from) exit(" Ошибка соединения!");
else echo" Соединение установлено.<br>";
echo"Авторизация <b>$host_from</b>..."; flush();
$user_from = $_POST["user_from"];
$pass_from = $_POST["pass_from"];
if(!@ftp_login($ftp_handle_from,$user_from,$pass_from)) { echo" Авторизация не удалась<br>";
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
exit(" Соединение закрыто."); flush();
}
else echo" ОK!<br>"; flush();
}
$host_to = $_POST["host_to"];
$ip_to = @gethostbyname($host_to);
if($ip_to == $host_to) { echo"Сервер <b>$host_to</b> НЕ найден.<br>";
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
exit(" Соединение закрыто."); flush();
}
else
{ echo"Соединение с <b>$host_to</b> ($ip_to)..."; flush();
$ftp_handle_to = @ftp_connect($ip_to);
if (!$ftp_handle_to) { echo" Ошибка соединения!<br>";
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
exit(" Соединение закрыто."); flush();
}
else echo" Соединение установлено.<br>";
echo"Авторизация <b>$host_to</b>..."; flush();
$user_to = $_POST["user_to"];
$pass_to = $_POST["pass_to"];
if(!@ftp_login($ftp_handle_to,$user_to,$pass_to)) { echo" Авторизация не удалась<br>";
echo"Выход <b>$host_to</b>..."; flush();
@ftp_quit($ftp_handle_to);
echo" Соединение закрыто.<br>"; flush();
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
exit(" Соединение закрыто."); flush();
}
else echo" ОK!<br>"; flush();
}
$dir_list_from = str_replace("\r\n","\n",$_POST["dir_list_from"]);
$dir_list_to = str_replace("\r\n","\n",$_POST["dir_list_to"]);
$dir_list_from = explode("\n",$dir_list_from);
$dir_list_to = explode("\n",$dir_list_to);
while(($dir_list_from[0] == "") && (sizeof($dir_list_from) > 1)) array_shift($dir_list_from);
while(($dir_list_to[0] == "") && (sizeof($dir_list_to) > 1)) array_shift($dir_list_to);
while($key = array_search("",$dir_list_from)) { unset($dir_list_from[$key]);
$dir_list_from = array_values($dir_list_from);
}
while($key = array_search("",$dir_list_to)) { unset($dir_list_to[$key]);
$dir_list_to = array_values($dir_list_to);
}
if($dir_list_from[0] == "")
echo"<b>Список дирректорий ОТ не должен быть пустым!</b><br>";
elseif($dir_list_to[0] == "")
echo"<b>Список дирректорий В не должен быть пустым!</b><br>";
elseif(($dir_co = sizeof($dir_list_from)) != sizeof($dir_list_to))
echo"<b>Количество дирректорий ОТ и дирректорий В должно быть одинаковым!</b><br>";
else
{ echo"<font face=\"Courier\">";
for($i = 0; $i < $dir_co; $i++)
{ $dir_list_from[$i] = str_replace("\\","/",$dir_list_from[$i]);
$dir_list_from[$i] = str_replace("//","/",$dir_list_from[$i]);
if($dir_list_from[$i][0] == "/") $dir_list_from[$i] = substr($dir_list_from[$i],1);
if($pos = strrpos($dir_list_from[$i],"/"))
{ $up_dir_from = substr($dir_list_from[$i],0,$pos);
$copy_dir_from = substr($dir_list_from[$i],$pos+1);
}
else
{ $up_dir_from = "";
$copy_dir_from = $dir_list_from[$i];
}
if($up_dir_from)
{ echo"Переход в ".$up_dir_from."..."; flush();
if(@ftp_chdir($ftp_handle_from,$up_dir_from))
echo" OK<br>";
else echo"<b> Error!</b><br>";
}
$dir_list = @ftp_rawlist($ftp_handle_from,".");
$perm = "";
foreach($dir_list as $file)
if($file[0] == "d" && substr($file,strrpos($file," ")+1) == $copy_dir_from)
{ $perm = substr($file,1,9);
break;
}
if(!$perm) { echo"Дирректория <b>".$dir_list_from[$i]."</b> не найдена!<br>"; flush(); }
else
{ echo"Копирование дирректории <b>".$dir_list_from[$i]."</b> в <b>".$dir_list_to[$i]."</b>...<br>"; flush();
copy_dir($ftp_handle_from,$ftp_handle_to,$copy_dir_from,$dir_list_to[$i],$perm,1);
}
for($j = 0; $j <= substr_count($up_dir_from,"/"); $j++)
@ftp_cdup($ftp_handle_from);
}
echo"</font>";
}
echo"Выход <b>$host_to</b>..."; flush();
@ftp_quit($ftp_handle_to);
echo" Соединение закрыто.<br>"; flush();
echo"Выход <b>$host_from</b>..."; flush();
@ftp_quit($ftp_handle_from);
echo" Соединение закрыто."; flush();
}?>
буду очень признателен за помощь...
_____________