Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка FTP-manager от Softtime
 
 автор: aexb   (16.12.2008 в 14:04)   письмо автору
 
 

Вопрос - пытаюсь поюзать FTP-менеджер, доступный для скачивания тут: http://www.softtime.ru/info/ftpmanager.php

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

Подождите...
Warning: set_time_limit() has been disabled for security reasons in /home/[someuser]/[somename]/www/ftpmanager/config.php on line 17

Warning: ftp_nb_put(C:\\Users\\Public\\Pictures\\Sample Pictures\\Desert Landscape.jpg) [function.ftp-nb-put]: failed to open stream: No such file or directory in /home/[someuser]/[somename]/www/ftpmanager/upload.php on line 40

Во время загрузки файла произошла ошибка...


На сколько я понимаю, ошибка в пути к файлу, так как там везде стоят два слэша. Может быть, надо как-то сервер сконфигурировать по-особому? Машина, с которой пытаюсь подгрузить файл, работает под Vista Ent 32

То же самое происходит, если в любой форме пытаться загрузить файл через <input type="file" name="filename">. В обработчике $_POST['filename'] тоже появляется с двумя слэшами везде. Пробовал explode/implode строку, чтобы слэши поубирать, но они всякий раз снова добавляются, сволочи :(

UPD: Попробовал stripslashes - та же фигня :( Или как-то неправильно попробовал.

  Ответить  
 
 автор: BinLaden   (16.12.2008 в 16:25)   письмо автору
 
   для: aexb   (16.12.2008 в 14:04)
 

> Или как-то неправильно попробовал

Скорее всего. Как выглядит Ваш код?

  Ответить  
 
 автор: aexb   (16.12.2008 в 17:51)   письмо автору
 
   для: BinLaden   (16.12.2008 в 16:25)
 

Дык код-то не мой, ссылка на исходник в топовом посте. На всякий случай, вот:
<?php
///////////////////////////////////////////////////
// FTP-manager
// 2004 (C) IT-студия SoftTime (http://www.softtime.ru)
// Симдянов И.В. (simdyanov@softtime.ru)
// Голышев С.В. (softtime@softtime.ru)
///////////////////////////////////////////////////
?>
Подождите...
<?php
  // Устанавливаем соединение с FTP-сервером
  require_once("config.php");
  // Получаем значения переменных переданных
  // методом POST из HTML-формы uploadform.php
  $dir = $_POST['dir'];
  $name = $_POST['name'];
  // Преобразуем права доступа пользователя
  // в числовую форму
  $user = 0;
  if($_POST['ur'] == 'on') $user += 4;
  if($_POST['uw'] == 'on') $user += 2;
  if($_POST['ux'] == 'on') $user += 1;
  // Преобразуем права доступа для группы
  // в числовую форму
  $group = 0;
  if($_POST['gr'] == 'on') $group += 4;
  if($_POST['gw'] == 'on') $group += 2;
  if($_POST['gx'] == 'on') $group += 1;
  // Права доступа по умолчанию для
  // остальных пользователей (не входящих в группу)
  $other = 0;
  if($_POST['or'] == 'on') $other += 4;
  if($_POST['ow'] == 'on') $other += 2;
  if($_POST['ox'] == 'on') $other += 1;
  // Проверяем введено ли имя для файла
  if(empty($name)) puterror("Недопустимое имя файла");
  $direct = str_replace('%', '/', $dir);
  // Начинаем загрузку
  $path = "$direct/".substr($name, strrpos($name, "\\") + 1);
//  $name = stripslashes($name);
  $ret = ftp_nb_put($link, $path, $name, FTP_BINARY);
  while ($ret == FTP_MOREDATA)
  {
    // Выводим точки что-бы пользователь
    // знал что процесс идёт
    echo ".";
    // Продолжаем загрузку
    $ret = ftp_nb_continue($link);
  }
  if ($ret != FTP_FINISHED)
  {
    echo "<br>Во время загрузки файла произошла ошибка...";
    exit();
  }
  else
  {
    // Создаём восьмеричную переменную $mode
    // с правами доступа к директории
     eval("\$mode=0$user$group$other;");    
    // Изменяем права доступа для только что
    // созданной директории
    if(ftp_chmod($link, $mode, $path))
    {
      // Осуществляем автоматический переход
      // в текущий каталог
      echo "<HTML><HEAD>
            <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?dir=$dir'>
            </HEAD></HTML>";
    } else puterror("Невозможно установить права доступа к файлу");
  }
?>


Перед отправкой строки я ставлю $name = stripslashes( $name ), при этом удаляется ненужный слэш, но скрипт все равно выдает вот такую ошибку:

Подождите...
Warning: set_time_limit() has been disabled for security reasons in /home/[someuser]/[somename]/www/ftpmanager/config.php on line 22

Warning: ftp_nb_put(C:\UpdatePatch.log) [function.ftp-nb-put]: failed to open stream: No such file or directory in /home/[someuser]/[somename]/www/ftpmanager/upload.php on line 41

Во время загрузки файла произошла ошибка...


Хостером запрещено использовать set_time_limit. Может, из-за этого?

  Ответить  
 
 автор: BinLaden   (16.12.2008 в 18:53)   письмо автору
 
   для: aexb   (16.12.2008 в 17:51)
 

Что-то я вообще не понял что это в скрипте написано.

uploadform.php:
<?php
  if($action == "upload.php")
  {
?>
<tr><td><p class=zag2>Файл:</p></td><td><input type=file name=name value='<?php echo $name; ?>'></td></tr>
<?php
  }
  else
  {
?>


В upload.php:
<?php
# ...
$name = $_POST['name'];
# ...
?>


?!

А на сервере, где выполняется скрипт, действительно существует файл "C:\UpdatePatch.log"?

> Хостером запрещено использовать set_time_limit. Может, из-за этого?
Да, первый Warning по этой причине.

  Ответить