Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Падение FTP соединения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Падение соединения FTP после подключения к серверу.
unnomen
Отправлено: 26 Февраля, 2015 - 16:39:15
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Ребят, подскажите пожалуйста - как держать FTP соединение (может как-то нужно использовать сессию), чтобы при переходе на следующие страницы PHP это соединение не разрушалось?

Сделал небольшое web-приложение для загрузки файлов на сервер. После подключения к серверу пропадает соединение при переходе на следующую php-страницу. FTP-сервер находится на локальной машине, в журнале тоже говорит об успешном подключении пользователя и тут же его отключает. Как удержать это соединение?

Сразу скажу - ftp_close нигде не указан.

Тут записал ВИДЕО работы сайта.
Прикреплено изображение с логом сервера.
Прикреплено изображение (Нажмите для увеличения)
Безымянный.jpg

(Отредактировано автором: 26 Февраля, 2015 - 16:50:19)

 
 Top
Мелкий Супермодератор
Отправлено: 26 Февраля, 2015 - 16:51:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Никак.
PHP после обработки запроса полностью завершает свою работу.


-----
PostgreSQL DBA
 
 Top
unnomen
Отправлено: 26 Февраля, 2015 - 17:08:42
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Мелкий пишет:
Никак.
PHP после обработки запроса полностью завершает свою работу.


Возможно ли описать тогда так:

При удачном подключении - введённые данные сохраняются в переменных и при загрузке происходит повторное подключение к серверу и загрузка файла?
 
 Top
Мелкий Супермодератор
Отправлено: 26 Февраля, 2015 - 17:20:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Да. Сохраняйте авторизационные данные, например, в сессию, при необходимости подключаетесь к ftp.


-----
PostgreSQL DBA
 
 Top
unnomen
Отправлено: 26 Февраля, 2015 - 21:31:50
Post Id



Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Февр. 2015  


Помог: 0 раз(а)




Мелкий пишет:
Да. Сохраняйте авторизационные данные, например, в сессию, при необходимости подключаетесь к ftp.

Да, всё получилось! ВОТ РЕЗУЛЬТАТ

Сделал через сессию:

load.php
PHP:
скопировать код в буфер обмена
  1. if ((isset($_SESSION['server'])) && (isset($_SESSION['user'])) && (isset($_SESSION['password']))) {
  2.         $connect = ftp_connect($_SESSION['server'], "21", "3");
  3.         $result = ftp_login($connect, $_SESSION['user'], $_SESSION['password']);
  4.         }
  5. else
  6.         {
  7.         $ftp_server = $_POST['server'];
  8.         $ftp_user_name = $_POST['user'];
  9.         $ftp_user_pass = $_POST['password'];
  10.         if ((empty($ftp_server)) || (empty($ftp_user_name)) || (empty($ftp_user_pass))) {
  11.                 echo "<h1><font color='red'>Вы забыли что-то указать!</font></h1>";
  12.                 header('Refresh:3; url=index.php');
  13.                 echo "<br><br>Вы будете перенаправлены на главную страницу через 3 секунды";
  14.                 exit; }
  15.         $power = ftp_connect($ftp_server, "21", "3");
  16.         if ($power) {
  17.                 $result = ftp_login($power, $ftp_user_name, $ftp_user_pass);}
  18.                 if(!$result){
  19.                 echo "<h1><font color='red'>Не удалось подключиться!</font></h1>";
  20.                 header('Refresh:3; url=index.php');
  21.                 echo "<br><br>Вы будете перенаправлены на главную страницу через 3 секунды";
  22.                 exit; }
  23.         else {
  24.                 echo "<h1><font color='green'>Подключение прошло успешно!</font></h1><br><br>";
  25.                 $_SESSION['server'] = $_POST['server'];
  26.                 $_SESSION['user'] = $_POST['user'];
  27.                 $_SESSION['password'] = $_POST['password'];
  28.                 ftp_close($power); }
  29.         }


И второй файл:
PHP:
скопировать код в буфер обмена
  1. $start_file = $_FILES['userfile']['tmp_name'];
  2. $end_file = $_FILES['userfile']['name'];
  3. $power = ftp_connect($_SESSION['server'], "21", "3");
  4. $result = ftp_login($power, $_SESSION['user'], $_SESSION['password']);
  5. if ($start_file) {
  6.         $upload = ftp_put($power, $end_file, $start_file, FTP_BINARY); }
  7. if (!$upload){
  8.         echo "<h1><font color='red'>Неудача!</font></h1>";
  9.         header('Refresh:3; url=load.php');
  10.         echo "<br><br>Вы будете перенаправлены на страницу загрузки через 3 секунды";
  11.         exit; }
  12. else {
  13.         echo "<h1><font color='green'>Загрузка прошла успешно!</font></h1>";
  14.         header('Refresh:3; url=load.php');
  15.         echo "<br><br>Вы будете перенаправлены на страницу загрузки через 3 секунды";
  16.         exit; }
  17. ftp_close($power);

(Отредактировано автором: 26 Февраля, 2015 - 21:40:49)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB