Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите объеденить два скрипта 
:(
    Опции темы
thebest
Дата 24.8.2006, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.8.2006

Репутация: нет
Всего: нет



Нужно объеденить два скрипта
Один:
Код

<?
//ссылка на файл который нужно скачать
$file = 'http://www.ru/file.txt';
//имя файла
$newfile = 'file.txt';

if (!@copy($file, $newfile))
 {
echo "не удалось скопировать $file...\n";
}
?>

Второй:
Код

<?
//--Указываем хост, имя пользователя и пароль для соединения
$ftp_host="ftp.narod.ru";
$ftp_login="pupkin";
$ftp_password="123456";

//--Соединяемся с FTP сервером
if($connect=ftp_connect($ftp_host))
{
 //--Если удалось соединиться, то начинаем авторизацию
 if(ftp_login($connect, $ftp_login, $ftp_password))
 {
  //--Если авторизация пользователя прошла успешно, то 
  //--начинаем закачивать файл на сервер
 
  //--Указываем путь к файлу, который надо загрузить на сервер, и 
  //--имя файла, под которым загружать этот файл на FTP сервер
  $source_file="/home/path/to/file/file.txt"; //Полный путь к файлу
  $file="file.txt"; //Имя файла на FTP сервере
  
   if(ftp_put($conn_id, $file, $source_file, FTP_BINARY))
    {
     print "Файл ".$file." закачан на FTP сервер ".$ftp_host;
    } else print "Не могу закачать файл ".$file." на FTP";

 }
 //--Если авторизоваться не удалось, выводим соответствующее сообщение
 else print "Неверные имя пользователя или пароль";
 
//--Если соединиться не удалось, то пишем сообщение
} else print "Не могу соединиться с FTP ".$ftp_host;
?>


Принцип работы такой: Я указываю ссылку на файл и имя файла в html форме

Код

<html>
<head>
<title>ScRiPt</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>

            <form action="script.php" method="post">
              URL:<br>
              <input type="text" name="URL" size="40">
              <br>
              <br>
              Имя файла:<br>
              <input type="text" name"FILENAME" size="40">
              <br>
              <br>
              <div align="center">
                <input type="submit" value="Закачать">
              </div>
            </form>
</body>
</html>


Cкрипт закачивает файл на сервер на котором он стоит, потом заливает с сервера на FTP.
Заранее спасибо за ответ!
PM MAIL   Вверх
-=Ustas=-
Дата 24.8.2006, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



Код

<?
//ссылка на файл который нужно скачать
$file = 'http://www.ru/file.txt';
//имя файла
$newfile = 'file.txt';
if (!@copy($file, $newfile))
 {
echo "не удалось скопировать $file...\n";
} else {
    system('php -f your_upload_file.php');
}
?>



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
thebest
Дата 24.8.2006, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.8.2006

Репутация: нет
Всего: нет



Цитата(-=Ustas=- @ 24.8.2006,  15:14)
Код

<?
//ссылка на файл который нужно скачать
$file = 'http://www.ru/file.txt';
//имя файла
$newfile = 'file.txt';
if (!@copy($file, $newfile))
 {
echo "не удалось скопировать $file...\n";
} else {
    system('php -f your_upload_file.php');
}
?>

Я имею ввиду объеденить вместе, а не отдельно. И ещё нужно сделать так чтобы после скачки файла сразу началась его закачка на ftp
PM MAIL   Вверх
ewolf
Дата 25.8.2006, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: нет
Всего: 18



Ну, как-нибудь так:

Код

<?
//--Указываем хост, имя пользователя и пароль для соединения
$ftp_host="ftp.narod.ru";
$ftp_login="pupkin";
$ftp_password="123456";

// Загружаем файл, по-сути это скрипт №1
// Использование функции copy нежелательно для копирования файла с удаленного сервера
// смотри FAQ. Но для примера сойдет

$new_file = 'temp.temp';

if( !copy( $_GET['URL'], $new_file ) )
   die(' Ошибка при скачивании файла ');




//--Соединяемся с FTP сервером
if($connect=ftp_connect($ftp_host))
{
 //--Если удалось соединиться, то начинаем авторизацию
 if(ftp_login($connect, $ftp_login, $ftp_password))
 {
  //--Если авторизация пользователя прошла успешно, то 
  //--начинаем закачивать файл на сервер
 
  //--Указываем путь к файлу, который надо загрузить на сервер, и 
  //--имя файла, под которым загружать этот файл на FTP сервер


  $source_file=$new_file; //Полный путь к файлу


  $file=$_GET['FILENAME']; //Имя файла на FTP сервере
  
   if(ftp_put($conn_id, $file, $source_file, FTP_BINARY))
    {
     print "Файл ".$file." закачан на FTP сервер ".$ftp_host;
    } else print "Не могу закачать файл ".$file." на FTP";

 }
 //--Если авторизоваться не удалось, выводим соответствующее сообщение
 else print "Неверные имя пользователя или пароль";
 
//--Если соединиться не удалось, то пишем сообщение
} else print "Не могу соединиться с FTP ".$ftp_host;
?>


За полную работоспособность не ручаюсь.
PM MAIL ICQ   Вверх
thebest
Дата 25.8.2006, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.8.2006

Репутация: нет
Всего: нет



ewolf, Сталкнулся с такой проблемой: Сначала скрипт выдавал "Ошибка при скачивании файла". Я поставил @copy вместо !copy. Потом файл вроде бы скачивался на сервер, затем снова ошибка "Не могу соединиться с FTP ftp.****.ru "
Из-за чего это могло произойти?

PM MAIL   Вверх
ewolf
Дата 25.8.2006, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: нет
Всего: 18



Ты уверен, что правильно ввел адрес? Попробуй вторым параметром функции ftp_connect указать порт FTP на серваке, например

ftp_connect($ftp_host, 21);

Если все равно не работает, измени код вот так:

Код

<?
//--Указываем хост, имя пользователя и пароль для соединения
$ftp_host="ftp.narod.ru";
$ftp_login="pupkin";
$ftp_password="123456";

// Загружаем файл, по-сути это скрипт №1
// Использование функции copy нежелательно для копирования файла с удаленного сервера
// смотри FAQ. Но для примера сойдет

$new_file = 'temp.temp';

if( !copy( $_GET['URL'], $new_file ) )
   die(' Ошибка при скачивании файла ');




//--Соединяемся с FTP сервером
$ftp_ip = gethostbyname($ftp_host); // Здесь было изменение !!!!!!!!!!!!!!!!!!!!!!!!!!
if($connect=ftp_connect($ftp_ip))
{
 //--Если удалось соединиться, то начинаем авторизацию
 if(ftp_login($connect, $ftp_login, $ftp_password))
 {
  //--Если авторизация пользователя прошла успешно, то 
  //--начинаем закачивать файл на сервер
 
  //--Указываем путь к файлу, который надо загрузить на сервер, и 
  //--имя файла, под которым загружать этот файл на FTP сервер


  $source_file=$new_file; //Полный путь к файлу


  $file=$_GET['FILENAME']; //Имя файла на FTP сервере
  
   if(ftp_put($conn_id, $file, $source_file, FTP_BINARY))
    {
     print "Файл ".$file." закачан на FTP сервер ".$ftp_host;
    } else print "Не могу закачать файл ".$file." на FTP";

 }
 //--Если авторизоваться не удалось, выводим соответствующее сообщение
 else print "Неверные имя пользователя или пароль";
 
//--Если соединиться не удалось, то пишем сообщение
} else print "Не могу соединиться с FTP ".$ftp_host;
?>


Может поможет smile
PM MAIL ICQ   Вверх
thebest
Дата 26.8.2006, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.8.2006

Репутация: нет
Всего: нет



Если вход на фтп анонимный, то что надо писать?
PM MAIL   Вверх
ewolf
Дата 26.8.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: нет
Всего: 18



login: anonymous
pass: [email protected]
PM MAIL ICQ   Вверх
thebest
Дата 26.8.2006, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.8.2006

Репутация: нет
Всего: нет



Цитата(ewolf @ 26.8.2006,  16:45)
login: anonymous
pass: [email protected]

я ввожу
login: Anonymous
pass: IEUser@


PM MAIL   Вверх
thebest
Дата 27.8.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.8.2006

Репутация: нет
Всего: нет




IP ftp 213.xxx.xxx.xxx:21

21 - Порт ftp. Я правильно понял?

PM MAIL   Вверх
ewolf
Дата 27.8.2006, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: нет
Всего: 18



ага
PM MAIL ICQ   Вверх
thebest
Дата 27.8.2006, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.8.2006

Репутация: нет
Всего: нет



ewolf
Пробовал и так и так, не помогает
Вот код, посмотри пожалуйста может я что не так написал
Код

<?
//--Указываем хост, имя пользователя и пароль для соединения
$ftp_host="ftp.esmr.ru";
$ftp_login="Anonymous";
$ftp_password="IEUser@";

// Загружаем файл, по-сути это скрипт №1
// Использование функции copy нежелательно для копирования файла с удаленного сервера
// смотри FAQ. Но для примера сойдет

$new_file = 'temp.temp';

if( @copy( $_GET['URL'], $new_file ) )
   die(' Ошибка при скачивании файла ');


//--Соединяемся с FTP сервером
$ftp_ip = gethostbyname($ftp_host); // Здесь было изменение !!!!!!!!!!!!!!!!!!!!!!!!!!
if($connect=ftp_connect($ftp_ip))
{
 //--Если удалось соединиться, то начинаем авторизацию
 if(ftp_login($connect, $ftp_login, $ftp_password))
 {
  //--Если авторизация пользователя прошла успешно, то 
  //--начинаем закачивать файл на сервер
 
  //--Указываем путь к файлу, который надо загрузить на сервер, и 
  //--имя файла, под которым загружать этот файл на FTP сервер


  $source_file=$new_file; //Полный путь к файлу


  $file=$_GET['FILENAME']; //Имя файла на FTP сервере
  
   if(ftp_put($conn_id, $file, $source_file, FTP_BINARY))
    {
     print "Файл ".$file." закачан на FTP сервер ".$ftp_host;
    } else print "Не могу закачать файл ".$file." на FTP";

 }
 //--Если авторизоваться не удалось, выводим соответствующее сообщение
 else print "Неверные имя пользователя или пароль";
 
//--Если соединиться не удалось, то пишем сообщение
} else print "Не могу соединиться с FTP ".$ftp_host;
?>

PM MAIL   Вверх
ewolf
Дата 27.8.2006, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: нет
Всего: 18



Да, у тебя были ошибки в скрипте. Вот новый вариант

Код

<?
//--Указываем хост, имя пользователя и пароль для соединения
$ftp_host="ftp.esmr.ru";
$ftp_login="Anonymous";
$ftp_password="IEUser@";

// Загружаем файл, по-сути это скрипт №1
// Использование функции copy нежелательно для копирования файла с удаленного сервера
// смотри FAQ. Но для примера сойдет

$new_file = 'data/temp.temp';

if( !copy( $_GET['URL'], $new_file ) )
   die(' Ошибка при скачивании файла ');


//--Соединяемся с FTP сервером
$ftp_ip = gethostbyname($ftp_host); // Здесь было изменение !!!!!!!!!!!!!!!!!!!!!!!!!!
if($connect=ftp_connect($ftp_ip))
{
 //--Если удалось соединиться, то начинаем авторизацию
 if(ftp_login($connect, $ftp_login, $ftp_password))
 {
  //--Если авторизация пользователя прошла успешно, то 
  //--начинаем закачивать файл на сервер
 
  //--Указываем путь к файлу, который надо загрузить на сервер, и 
  //--имя файла, под которым загружать этот файл на FTP сервер


  $source_file=$new_file; //Полный путь к файлу


  $file=$_GET['FILENAME']; //Имя файла на FTP сервере
  
   if(ftp_put($connection, $file, $source_file, FTP_BINARY))
    {
     print "Файл ".$file." закачан на FTP сервер ".$ftp_host;
    } else print "Не могу закачать файл ".$file." на FTP";

 }
 //--Если авторизоваться не удалось, выводим соответствующее сообщение
 else print "Неверные имя пользователя или пароль";
 
//--Если соединиться не удалось, то пишем сообщение
} else print "Не могу соединиться с FTP ".$ftp_host;
?>


Я проверил работу с другим (своим ftp-сервером), все работает.

Обрати внимание на строчку

$new_file = 'data/temp.temp';

Тебе следует создать папку data, в дирректории скрипта и присвоить ей права 777 (или сделать ее обладателем скрипт PHP).

Ошибка была также в строке

if(ftp_login($connect, $ftp_login, $ftp_password))

там вместо $connect было написано $conn_id 
PM MAIL ICQ   Вверх
thebest
Дата 28.8.2006, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.8.2006

Репутация: нет
Всего: нет



Пишет
Ошибка при скачивании файла
PM MAIL   Вверх
ewolf
Дата 30.8.2006, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: нет
Всего: 18



а ты как скрипт вызываешь?
PM MAIL ICQ   Вверх
thebest
Дата 30.8.2006, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 18.8.2006

Репутация: нет
Всего: нет



Через HTML (в 1-м сообщении писал код)
PM MAIL   Вверх
IZ@TOP
Дата 31.8.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: нет
Всего: 73



Модератор: тема не имеет ни какого отношения к проф. разработке. Перемещено.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.1459 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.