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
Форумы портала PHP.SU :: Версия для печати :: Падение FTP соединения
Форумы портала PHP.SU » » Работа с сетью » Падение FTP соединения

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

1. unnomen - 26 Февраля, 2015 - 16:39:15 - перейти к сообщению
Ребят, подскажите пожалуйста - как держать FTP соединение (может как-то нужно использовать сессию), чтобы при переходе на следующие страницы PHP это соединение не разрушалось?

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

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

Тут записал ВИДЕО работы сайта.
Прикреплено изображение с логом сервера.
2. Мелкий - 26 Февраля, 2015 - 16:51:41 - перейти к сообщению
Никак.
PHP после обработки запроса полностью завершает свою работу.
3. unnomen - 26 Февраля, 2015 - 17:08:42 - перейти к сообщению
Мелкий пишет:
Никак.
PHP после обработки запроса полностью завершает свою работу.


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

При удачном подключении - введённые данные сохраняются в переменных и при загрузке происходит повторное подключение к серверу и загрузка файла?
4. Мелкий - 26 Февраля, 2015 - 17:20:20 - перейти к сообщению
Да. Сохраняйте авторизационные данные, например, в сессию, при необходимости подключаетесь к ftp.
5. unnomen - 26 Февраля, 2015 - 21:31:50 - перейти к сообщению
Мелкий пишет:
Да. Сохраняйте авторизационные данные, например, в сессию, при необходимости подключаетесь к 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);

 

Powered by ExBB FM 1.0 RC1