PDA

Просмотр полной версии : Php и Ftp


Kadabra
14.04.2004, 23:20
в общем проблемма такая !
в PHP я пользуюсь стандартным способом входа на FTP сервер : ftp://login:pass@url.domen
но есть один недостаток, точнее их многа ну скажем если в Опере это дело ввести, то скроется под звездочки только пароль, а логин открыт; Ослик (IE) все скрывает кроме урла, хрен знает как себя ведут другие броузеры. А вообще современные сайтостроители каким образом осуществляют авторизацию на PHP !!! Или мож есть каманда какая-нить ? или кто подобное делал ? Помогите плиз !

nagash
15.04.2004, 00:41
как связаны браузеры и пхп и фтп?
я вот нифига не понял!
а в пхп есть специальные функции ftp_* - почитай про них... может поможет...

Kadabra
15.04.2004, 00:57
Оригинал написал(а) nagash
как связаны браузеры и пхп и фтп?
я вот нифига не понял!
а в пхп есть специальные функции ftp_* - почитай про них... может поможет...

причем PHP- язык программирования, а вот если бы нашел я эту функцию, тагдабы я не спрошивал про нее )))

taras1987
15.04.2004, 08:46
XXXIII. Функции FTP
Введение
Функции этого расширения реализуют клиентский доступ к файловым серверам, называемый File Transfer Protocol FTP, как определено в http://www.faqs.org/rfcs/rfc959.html.

Требования
Эти функции всегда доступны как часть стандартного модуля.

Установка
Чтобы использовать FTP-функции с вашей конфигурацией PHP, вы должны добавить опцию
--enable-ftp при установке PHP 4, и --with-ftp при использовании PHP 3.

Установка
Это расширение не определяет никаких директив конфигурации.

Типы ресурсов
Это расширение использует один тип ресурсов, который является ссылкой-идентификатором ftp-соединения.

Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.

FTP_ASCII (integer)
FTP_TEXT (integer)
FTP_BINARY (integer)
FTP_IMAGE (integer)
FTP_TIMEOUT_SEC (integer)
Примеры
Пример 1. FTP

<?php
// установить базовое соединение
$conn_id = ftp_connect($ftp_server);

// login с username и password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// проверить соединение
if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
die;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name";
}

// загрузить файл
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// проверить статус загрузки
if (!$upload) {
echo "FTP upload has failed!";
} else {
echo "Uploaded $source_file to $ftp_server as $destination_file";
}

// закрыть поток FTP
ftp_close($conn_id);
?>



Содержание
ftp_cdup - переходит в родительскую директорию
ftp_chdir - переходит по директориям на FTP-сервере
ftp_close - закрывает FTP-соединение
ftp_connect - открывает FTP-соединение
ftp_delete - удаляет файлы на FTP-сервере
ftp_exec - запрашивает выполнение программы на FTP-сервере
ftp_fget - загружает файл с FTP-сервера и сохраняет в открытом файле
ftp_fput - загружает открытый файл на FTP-сервер
ftp_get_option - запрашивает поведение текущего потока FTP
ftp_get - загружает файл с FTP-сервера
ftp_login - входит в FTP-соединение
ftp_mdtm - возвращает время последнего изменения данного файла
ftp_mkdir - создаёт диреткорию
ftp_nlist - возвращает список файлов в данной директории
ftp_pasv - включает/выключает режим passive
ftp_put - выгружает файл на FTP-сервер
ftp_pwd - Возвращает имя текущей директории
ftp_quit - закрывает FTP-соединение
ftp_rawlist - возвращает детальный список файлов в данной директории
ftp_rename - переименовывает файл на FTP-сервере
ftp_rmdir - удаляет директорию
ftp_set_option - устанавливает различные опции работы FTP
ftp_site - отправляет команду SITE на сервер
ftp_size - Возвращает размер данного файла
ftp_systype - Возвращает системный идентификатор типа удалённого FTP-сервера

Поищи по имени в манах google или yandex
Русский ман: http://phpclub.net/manrus/

Nirva
15.04.2004, 13:51
в ftp пароль и имя пользователя передаются в открытом виде. вот такой вот протокол. потому и исходить из этого следует - из стандарта, а не из того, на что визуально меняют броузеры логин и пасс

Kadabra
15.04.2004, 20:34
Оригинал написал(а) taras1987
XXXIII. Функции FTP
Введение
Функции этого расширения реализуют клиентский доступ к файловым серверам, называемый File Transfer Protocol FTP, как определено в http://www.faqs.org/rfcs/rfc959.html.

Требования
Эти функции всегда доступны как часть стандартного модуля.

Установка
Чтобы использовать FTP-функции с вашей конфигурацией PHP, вы должны добавить опцию
--enable-ftp при установке PHP 4, и --with-ftp при использовании PHP 3.

Установка
Это расширение не определяет никаких директив конфигурации.

Типы ресурсов
Это расширение использует один тип ресурсов, который является ссылкой-идентификатором ftp-соединения.

Предопределённые константы
Эти константы определены данным расширением и будут доступны только в том случае, если либо вкомпилированы в РНР, либо динамически загружены на этапе прогона.

FTP_ASCII (integer)
FTP_TEXT (integer)
FTP_BINARY (integer)
FTP_IMAGE (integer)
FTP_TIMEOUT_SEC (integer)
Примеры
Пример 1. FTP

<?php
// установить базовое соединение
$conn_id = ftp_connect($ftp_server);

// login с username и password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// проверить соединение
if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
die;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name";
}

// загрузить файл
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// проверить статус загрузки
if (!$upload) {
echo "FTP upload has failed!";
} else {
echo "Uploaded $source_file to $ftp_server as $destination_file";
}

// закрыть поток FTP
ftp_close($conn_id);
?>



Содержание
ftp_cdup - переходит в родительскую директорию
ftp_chdir - переходит по директориям на FTP-сервере
ftp_close - закрывает FTP-соединение
ftp_connect - открывает FTP-соединение
ftp_delete - удаляет файлы на FTP-сервере
ftp_exec - запрашивает выполнение программы на FTP-сервере
ftp_fget - загружает файл с FTP-сервера и сохраняет в открытом файле
ftp_fput - загружает открытый файл на FTP-сервер
ftp_get_option - запрашивает поведение текущего потока FTP
ftp_get - загружает файл с FTP-сервера
ftp_login - входит в FTP-соединение
ftp_mdtm - возвращает время последнего изменения данного файла
ftp_mkdir - создаёт диреткорию
ftp_nlist - возвращает список файлов в данной директории
ftp_pasv - включает/выключает режим passive
ftp_put - выгружает файл на FTP-сервер
ftp_pwd - Возвращает имя текущей директории
ftp_quit - закрывает FTP-соединение
ftp_rawlist - возвращает детальный список файлов в данной директории
ftp_rename - переименовывает файл на FTP-сервере
ftp_rmdir - удаляет директорию
ftp_set_option - устанавливает различные опции работы FTP
ftp_site - отправляет команду SITE на сервер
ftp_size - Возвращает размер данного файла
ftp_systype - Возвращает системный идентификатор типа удалённого FTP-сервера

Поищи по имени в манах google или yandex
Русский ман: http://phpclub.net/manrus/

Огромное спасибо !!!!
Можешь дать линк на этот учебник ?, если не сложно ?

Kadabra
16.04.2004, 03:50
[QUOTE]Оригинал написал(а) taras1987
[B]XXXIII. Функции FTP
Введение
Функции этого расширения реализуют клиентский доступ к файловым серверам, называемый File Transfer Protocol FTP, как определено в http://www.faqs.org/rfcs/rfc959.html.
...............................


<?
$conn_id = ftp_connect($ftp_server);
// login ? username ? password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if ((!$conn_id) || (!$login_result)) {
echo "FTP connection has failed!";
echo "Attempted to connect to $ftp_server for user $ftp_user_name";
die;
} else {
echo "Connected to $ftp_server, for user $ftp_user_name";
}

$upload = ftp_fget($conn_id, $filename, $upfile, FTP_BINARY);#($conn_id, $destination_file, $source_file, FTP_BINARY);

if (!$upload) {
echo "FTP upload has failed!";
} else {
echo "Uploaded $source_file to $ftp_server as $destination_file";
}

ftp_close($conn_id);
?>

а в качестве $filename что нужно занести ?
-путь куда файлик сохранять, но в какой форме его писать писать "с:\test c:/test /test?
или я что-то не понял ?

Crazy
16.04.2004, 08:40
Оригинал написал(а) Kadabra
а в качестве $filename что нужно занести ?

Имя файла, который лежит на сервере. :)

Kadabra
16.04.2004, 16:33
Оригинал написал(а) Crazy


Имя файла, который лежит на сервере. :)
блин запарился я напиши лучше пример что нужно пихать в переменные, требуелся вывести запрос пользователю о том куда сохранять файлик с ФТП
на котором есть запись к примеру Юзер :roma пароль: rot и путь до файла: ftp://www.site.ru/fele.avi ну как делают на обычнех сайтах жмешь ссылку и те предлогают сохранить файл

Crazy
16.04.2004, 23:40
Оригинал написал(а) Kadabra
блин запарился я

Когда распаришься -- напиши на внятном русском языке, чего ты хотел.

Kadabra
17.04.2004, 12:16
Оригинал написал(а) Crazy


Когда распаришься -- напиши на внятном русском языке, чего ты хотел.

вобщем нада на PHP написать прогу каторая будет выкидывать табличку о сахранении файла, с запароленного FTP Сервера, в общем как на обычных серваках тыкаешь ссылку, а тыбы выскакивает табличка о сохранении файла, программа должна открывать сессию с FTP сервером, и давать доступ на указанный файл, по завершении закачки сессия закрывается, либо при внезапном разрыве соединения, сама автоматически закрывает сессию.

Crazy
17.04.2004, 20:14
Во-первых, PHP никаких "табличек о сохранении" выкидывать не может -- PHP находится на сервере.

Твоя задача на самом деле состоит из двух:

1. Как скачать файл на сервер, где стоит PHP, с некоторого запароленного ftp. Решение есть в документации (http://ru.php.net/ftp_get).

2. Как файл, уже лежащий на сервере, выдать пользователю, чтобы его браузер запросил сохранение. В поиск на гугле на предмет "content-disposition php sample".