|
|
|
| Вопрос - пытаюсь поюзать 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 - та же фигня :( Или как-то неправильно попробовал. | |
|
|
|
|
|
|
|
для: aexb
(16.12.2008 в 14:04)
| | > Или как-то неправильно попробовал
Скорее всего. Как выглядит Ваш код? | |
|
|
|
|
|
|
|
для: 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. Может, из-за этого? | |
|
|
|
|
|
|
|
для: 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 по этой причине. | |
|
|
|