Помогите с FTP , ftp_pwd, ftp_chdir

marvelent

Новичок
Помогите с FTP , ftp_pwd, ftp_chdir

Добрый день!
Возникла проблема. Под Win работает , под Unix нет :(

после залогинивания...

...
print "FTP_PWD1=".ftp_pwd($ftpc)."<br>"; # говорит "/"
...
в этом месте если пытаюсь создать каталог, он создается - ftp_mkdir($ftpc,"test1");

if (!@ftp_chdir($ftpc,$ftpdir)){
print "FTP_PWD2=".ftp_pwd($ftpc)."<br>"; # говорит ""

ftp_mkdir($ftpc,"tester1");
ftp_mkdir($ftpc,$ftpdir);
ftp_chdir($ftpc,$ftpdir);
...

до ftp_chdir папку создает, а после нет. и ftp_pwd вместо "/" говорит теперь "". Может быть чем-то заменить ftp_chdir ? т.е. проверить существует ли директория, а не осуществлять проверку попыткой входа в неё ?

Можно ли как-то узнать с помощью php root-путь ? Использую относительные пути. Root (полный) мне не известен.
======
под Windows код работает.

Спасибо.
 

marvelent

Новичок
отвечает 'SITE CHMOD' Disabled

и после if (!@ftp_chdir($ftpc,$ftpdir)), если запросить ошибку в $php_errormsg содержится "/" is current directory

такой еще вопрос: почему до if (!@ftp_chdir($ftpc,$ftpdir)) папка создается, даже если права на "/" не выставлять ?
 

Necromant

Новичок
Ну так разреши CHMOD , на сервере для пользоватля из под которого выполняется php
 

marvelent

Новичок
вариант с CHMOD не подходит.

такой еще вопрос: почему до if (!@ftp_chdir($ftpc,$ftpdir)) папка создается, даже если права на "/" не выставлять ?
 

marvelent

Новичок
мой PHP работает не в SAFE MODE.
можно поподробнее как решить вопрос с FTP ?

код взял отсюда. но он не работает в моем случае. http://ru.php.net/ftp
 

Necromant

Новичок
, проверь пользователя группу создаваемой папки.
если на сервере запрещен chmod ПИШИ админам.
 

marvelent

Новичок
Necromant, спасибо, что внимание уделил.

проблему решил :) дело было не в правах...
 

SiMM

Новичок
> дело было не в правах...
Ну так и написал бы, в чём было дело и как
> проблему решил
 

marvelent

Новичок
На мой взгляд причина в следующем:

Рассмотрим случай, когда мы записываем файлы/создаем каталоги в корень, т.е. в "/". Тогда входной параметр для

function ftpRec($ftpc,$ftpr,$locdir,$ftpdir){

будет $ftpdir="".

следуя коду.

if (!@ftp_mkdir($ftpc,$ftpdir)){

пытаемся создать директорию "". возникает ошибка "/" is current directory

Тогда просто подставим условие
if ($ftpdir!=""){
if (!@ftp_mkdir($ftpc1,$ftpdir)){
ftp_mkdir($ftpc,$ftpdir);
ftp_chdir($ftpc,$ftpdir);
}
}

и, если это корневой каталог, то входить в него не надо (мы уже после подключения в нем) и пытаться создавать тоже.

старая версия здесь: http://ru.php.net/ftp
там определен $srcroot = "/home/kristy/scripts/"; (исп. абсолютный путь)

в моем случае это не используется, т.к. я его просто не знаю.
 
Сверху