помогите с Php

  • Автор темы dragon
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

dragon

мне надо доработать скрипт, идет ошибка. Вопрс у меня. данный скрипт первоначально занимался закачкой в один каталог сайта, на котором установлен. Как переделать его так, чтобы закачка шла только на определенный ftp сервер, А дальше пользователь вводил имя папки. Соответственно должно получиться вот что:
два поля для ввода текста(in, out)в ин вводиться ссылка на файл, в аут папка на ftp серверенапремер такого рода (папка/фигня/папка 2/) . А файл отсылается на {ftp://сервер.com/uploads/папка/фигня/папка 2/ }
как это сделать. Напишите плиз.
Код:
<?php
if(isset($HTTP_POST_VARS['in']))
{
$fn = $HTTP_POST_VARS['in'];
$handle = fopen ($fn, 'rb');
$contents = "";
if(!$handle)
echo 'Не могу открыть исходный файл';
else
{
while(!feof($handle))
{
$data = fread($handle, 8192);
$contents .= $data;
}
fclose ($handle);

$HTTP_GET_VARS['out']
$handle = fopen ('./download/' . basename($fn), 'wb');
if(!$handle)
echo 'Не могу создать записать файл';
else
{
fwrite($handle, $contents);
fclose($handle);
echo 'Передача завершена';
}
}
}
?>			  

<FORM ACTION="<?php echo $_SERVER['PHP_SELF']; ?>" METHOD="post">
<INPUT TYPE="hidden" NAME="act" VALUE="send">
URL:<BR />
<INPUT TYPE="text" NAME="in" SIZE="64"><BR />
out URL:<BR />
<INPUT TYPE="text" NAME="out" SIZE="64"><BR />

<INPUT TYPE="submit" VALUE=" Send"> 

</FORM><BR />
</BODY></HTML>
Вот мой недаработанный код.
 
W

WebTech

Вроде так
Код:
<?php

$file = $_POST['in'];
$ftp_dir = $_POST['out'];

$ftp_server = 'ftp.server.com'; // имя ftp-сервера
$ftp_port = '21'; // порт ftp-сервера; по умолчанию 21
$ftp_login = 'login'; // логин к ftp-серверу
$ftp_password = 'passwd'; // пароль к ftp-серверу

$fc = ftp_connect ($ftp_server, $ftp_port);
if (!$fc)
{
echo 'Не удалось подключиться к FTP-серверу!';
exit;
}

$auth = ftp_login($fc, $ftp_login, $ftp_password);
if (!$auth)
{
echo 'Не удалось авторизоваться на FTP-сервере';
exit;
}

ftp_chdir($fc, $ftp_dir); // переходим в заданный каталог на ftp-сервере

$ld = ftp_put ($fc, basename($file), $file, FTP_BINARY);
if(!$ld)
{
echo 'Не удалось выгрузить файл на FTP-сервер!';
exit;
}

echo 'Файл '.$file.' выгружен на FTP-сервер.';

?>
 
D

dragon

а куда чего вводить, всмысле где поля для ввода текста? я попробывал сам, ничего не получилось.
 
S

SOFTOBZOR.ru

Ну а HTML уж сам придумай.
Код рабочий, и делает точ то ты просил
 
D

dragon

ну раз вы так говорите, то небуду спорить. За скрипт спасибо, только как насторить его под пассивное подключение. В принцыпе, дальше я сам все сделаю. Большое спасибо за помощ.
********************************************************************************
*******
У меня еще один вопрос. Я забыл что доступ к этому серверу определяется через IP адрес пользователя. Как переделать систему авторизации данного скрипта?
 
W

WebTech

Как это - через IP? Поподробнее, пожалуйста.
 
D

dragon

Ну, FTP сервер распознает определенные ip адреса. По ним высчитывается трафик каждого. Я не уверен. Поподробнее расскажу когда получу обьеснение тех. стороны вопроса
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!