PHP ftp_chdir Fehler auf DS213

Status
Für weitere Antworten geschlossen.

eaimaster

Benutzer
Mitglied seit
22. Jul 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hi ,

habe eine DS213, alles läuft wunderbar . Versuche über ein php Script auf andere Maschinen zuzugreifen, was mit dem Connect, Login alles wunderbar klappt.

Danach versuche ich ein ftp_chdir vorzunehmen und jedesmal schlägt dieser Befehl fehl. Ich habe mir vorher auch über den ftp_nlist das aktuelle Verzeichnis ausgeben lassen und versuche nun in eines dieser Verzeichnisse zu wechseln ohne Erfolg. Groß/Kleinschreibung alles wurde beachtet.

Über alle anderen Stand Alone FTP Clients kann ich über die Ebenen navigieren, nur mit dem php ftp_chdir befehl nicht.

Dieses habe ich mit 3 unterschiedlichen Zielen ausprobiert und erhalte immer das gleiche Resultat.

Hat jemand einen Einfall

Für einen genialen Einfall wäre ich dankbar.

anbei noch die PHP Info



PHP Version 5.3.21

System Linux NVR-Berlin-LP9 2.6.32.12 #3211 Tue Apr 16 20:04:57 CST 2013 armv5tel
Build Date Apr 16 2013 20:30:38
Configure Command './configure.syno' '--host=armle-unknown-linux' '--target=armle-unknown-linux' '--build=i686-pc-linux' '--with-ldap=shared,/usr/syno' '--with-ldap-sasl=/usr/syno' '--prefix=/usr/syno/php' '--with-apxs2=/usr/syno/apache/bin/apxs' '--disable-cgi' '--with-config-file-path=/usr/syno/etc' '--with-config-file-scan-dir=/usr/syno/etc/php' '--with-libxml-dir=/usr/syno' '--with-bz2=/usr/local/arm-none-linux-gnueabi' '--with-zlib=shared,/usr/syno' '--enable-bcmath=shared' '--enable-syno_compiler=shared' '--enable-calendar=shared' '--with-curl=shared,/usr/syno' '--enable-dba=shared' '--enable-exif=shared' '--enable-ftp=shared' '--with-gd=shared' '--with-jpeg-dir=/usr/syno' '--with-png-dir=/usr/syno' '--with-freetype-dir=/usr/syno' '--enable-gd-native-ttf' '--with-gettext=shared' '--with-iconv=shared,/usr/syno/libiconv' '--with-imap=shared,/source/imap-2007e' '--with-imap-ssl=shared,/usr/syno' '--enable-mbstring=shared' '--with-mcrypt=shared,/usr/syno' '--with-mysql=shared,/usr/syno/mysql' '--with-mysqli=shared,/usr/syno/mysql/bin/mysql_config' '--with-openssl=shared,/usr/syno' '--with-pdo-mysql=shared,/usr/syno/mysql' '--with-pdo-pgsql=shared,/usr/syno/pgsql' '--with-pgsql=shared,/usr/syno/pgsql' '--enable-shmop=shared' '--enable-soap=shared' '--enable-sockets=shared' '--enable-wddx=shared' '--with-xmlrpc=shared' '--enable-zip=shared' '--with-sqlite3=static,/usr/syno/sqlite3' '--with-pdo-sqlite=static,/usr/syno/sqlite3' '--with-xsl=shared,/usr/syno/libxslt' '--enable-phar=shared' '--with-mssql=shared,/usr/syno/freetds'
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /usr/syno/etc
Loaded Configuration File /usr/syno/etc/php.ini
Scan this dir for additional .ini files /usr/syno/etc/php
Additional .ini files parsed /usr/syno/etc/php/extension.ini, /usr/syno/etc/php/user-setting.ini
PHP API 20090626
PHP Extension 20090626
Zend Extension 220090626
Zend Extension Build API220090626,NTS
PHP Extension Build API20090626,NTS
Debug Build no
Thread Safety disabled
Zend Memory Manager enabled
Zend Multibyte Support disabled
IPv6 Support enabled
Registered PHP Streams compress.bzip2, php, file, glob, data, http, ftp, https, ftps, zip, compress.zlib
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
Registered Stream Filters bzip2.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*, zlib.*

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies

Configuration
apache2handler
Apache Version Apache/2.2.23 (Unix)
Apache API Version 20051115
Server Administrator admin
Hostname:port *:5000
User/Group root(0)/0
Max Requests Per Child: 0 - Keep Alive: on - Max Per Connection: 100
Timeouts Connection: 3600 - Keep-Alive: 5
Virtual Server No
Server Root /usr/syno/apache
Loaded Modules core mod_authn_file mod_authn_default mod_authz_host mod_authz_groupfile mod_authz_user mod_authz_default mod_auth_basic mod_include mod_filter mod_log_config mod_env mod_mime_magic mod_setenvif prefork http_core mod_mime mod_status mod_autoindex mod_asis mod_cgi mod_negotiation mod_dir mod_actions mod_userdir mod_alias mod_so mod_rewrite mod_deflate mod_headers mod_xsendfile mod_php5



Apache Environment
Variable Value
SCRIPT_URL /webman/3rdparty/Init_3rdparty/phpinfo
SCRIPT_URI http://192.168.179.173:5000/webman/3rdparty/Init_3rdparty/phpinfo
MOD_X_SENDFILE_ENABLED yes
HTTP_HOST 192.168.179.173:5000
HTTP_USER_AGENT Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0
HTTP_ACCEPT text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGE de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
HTTP_ACCEPT_ENCODING gzip, deflate
HTTP_REFERER http://192.168.179.173:5000/webman/index.cgi
HTTP_COOKIE reInstallPkgs=newPkgs; stay_login=1; id=ArYhKpwJvfVxE
HTTP_CONNECTION keep-alive
PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
SERVER_SIGNATURE <address>Apache/2.2.23 (Unix) Server at 192.168.179.173 Port 5000</address>
SERVER_SOFTWARE Apache/2.2.23 (Unix)
SERVER_NAME 192.168.179.173
SERVER_ADDR 192.168.179.173
SERVER_PORT 5000
REMOTE_ADDR 192.168.179.39
DOCUMENT_ROOT /usr/syno/synoman
SERVER_ADMIN admin
SCRIPT_FILENAME /usr/syno/synoman/webman/3rdparty/Init_3rdparty/phpinfo.php
REMOTE_PORT 60798
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING no value
REQUEST_URI /webman/3rdparty/Init_3rdparty/phpinfo
SCRIPT_NAME /webman/3rdparty/Init_3rdparty/phpinfo.php

HTTP Headers Information
HTTP Request Headers
HTTP Request GET /webman/3rdparty/Init_3rdparty/phpinfo HTTP/1.1
Host 192.168.179.173:5000
User-Agent Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Referer http://192.168.179.173:5000/webman/index.cgi
Cookie reInstallPkgs=newPkgs; stay_login=1; id=ArYhKpwJvfVxE
Connection keep-alive
HTTP Response Headers
Vary Accept-Encoding
Content-Encoding gzip

apc
APC Support enabled
Version 3.1.3p1
MMAP Support Enabled
MMAP File Mask /var/spool/php/apc/apc.E3d7LY
Locking type File Locks
Revision $Revision: 1.1 $
Build Date Apr 16 2013 20:31:27



calendar
Calendar support enabled

Core
PHP Version 5.3.21

Directive Local Value Master Value
allow_call_time_pass_reference Off Off
allow_url_fopen On On
allow_url_include Off Off
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_globals_jit On On
auto_prepend_file no value no value
browscap no value no value
default_charset no value no value
default_mimetype text/html text/html
define_syslog_variables Off Off
disable_classes no value no value
disable_functions no value no value
display_errors Off Off
display_startup_errors Off Off
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl Off Off
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting 22519 22519
exit_on_timeout Off Off
expose_php Off Off
extension_dir /lib/php/extensions /lib/php/extensions
file_uploads On On
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors Off Off
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .:/usr/syno/php/lib/php .:/usr/syno/php/lib/php
log_errors On On
log_errors_max_len 1024 1024
magic_quotes_gpc Off Off
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
mail.add_x_header On On
mail.force_extra_parameters no value no value
mail.log no value no value
max_execution_time 240 240
max_file_uploads 20 20
max_input_nesting_level 64 64
max_input_time 60 60
max_input_vars 1000 1000
memory_limit 128M 128M
open_basedir no value /etc.defaults:/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes
output_buffering 4096 4096
output_handler no value no value
post_max_size 32M 32M
precision 14 14
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120
register_argc_argv Off Off
register_globals Off Off
register_long_arrays Off Off
report_memleaks On On
report_zend_debug On On
request_order GP GP
safe_mode Off Off
safe_mode_exec_dir no value /usr/syno/bin
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from no value no value
sendmail_path -t -i -t -i
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 32M 32M
upload_tmp_dir no value no value
user_dir no value no value
user_ini.cache_ttl 300 300
user_ini.filename .user.ini .user.ini
variables_order GPCS GPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
zend.enable_gc On On

ctype
ctype functions enabled

curl
cURL support enabled
cURL Information 7.26.0-DEV
Age 3
Features
AsynchDNS No
Debug No
GSS-Negotiate No
IDN No
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI No
krb4 No
libz Yes
CharConv No
Protocols dict, file, ftp, ftps, gopher, http, https, imap, imaps, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
Host armle-unknown-linux-gnu
SSL Version OpenSSL/1.0.1e
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wie wärs du würdest mal die relevanten Zeilen aus deinem Script posten?
 

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Kann Dir nur bestätigen - Läuft. Der Fehler muß in deinem Quellcode liegen. Bitte posten.

Gruß Frank
 

eaimaster

Benutzer
Mitglied seit
22. Jul 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Code zum PHP ftp_chdir Problem

*** Anbei der Codeausschnitt plus das dazugehörige Log , entweder sehe ich den Wald vor lauter Bäumen nicht oder.... *** Jede Hilfe ist willkommen ..

ftp = ftp_connect ($__source[$sources]['URL'],$__source[$sources]['PORT'],15);

if ( !$ftp )
{
echo ' Connect fehlgeschlagen zu ... '.$ftp_host.' auf Port '.$ftp_port;
return;
}

// --------- login ----------------
if ( ftp_login ($ftp, $__source[$sources]['USER'],$__source[$sources]['PASS'] ) == false )
{
echo ' Login fehlgeschlagen ... ';
ftp_close($ftp);
return;
}



$act_share = "CAMWALD"





echo '###'.$act_share .'###';
// ---- switch to directory -----

echo "Aktuelles Verzeichnis: " . ftp_pwd($ftp) . "\n---".$act_share."---".$start_date."\n---";


print_r (ftp_nlist($ftp,"/"));

if ( ftp_chdir ( $ftp , $act_share ))
{
ftp_close($ftp);
echo ' Can\'t change directory to '.$path_names[$pathes];
return;
}




###CAMWALD###Aktuelles Verzeichnis: /
---CAMWALD---20130724
---Array
(
[0] => web
[1] => video
[2] => PROG
[3] => EAIONEUG
[4] => DATA
[5] => CAMWALD
[6] => CAMHOFDAUER
[7] => CAMHOF
[8] => BACKUP
)
Can't change directory to CAMWALD
 

eaimaster

Benutzer
Mitglied seit
22. Jul 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Ich denke , ich sehe den Fehler selbst , das ! Zeichen bei der If Abfrage ist weg , somit kann es nicht klappen, ich teste gleich ..
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0

fpo4711

Benutzer
Mitglied seit
26. Mai 2010
Beiträge
2.772
Punkte für Reaktionen
1
Punkte
0
Wenn nicht, hier mal ein Beispiel das läuft:

PHP:
<?php

$ftp_server = "localhost";
$ftp_user_name = "admin";
$ftp_user_pass = "geheim";
$ftp_folder = "music";

// Verbindung aufbauen
$conn_id = ftp_connect($ftp_server);

// Login mit Benutzername und Passwort
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Verbindung überprüfen
if ((!$conn_id) || (!$login_result)) {
    die("FTP-Verbindungsaufbau ist fehlgeschlagen!");
}

echo "Aktuelles Verzeichnis: " . ftp_pwd($conn_id) . "<br>";

echo "Wechsel in das Verzeichnis 'music'<br>";

// Versuche, in das Verzeichnis zu wechseln
if (ftp_chdir($conn_id, $ftp_folder)) {
    echo "Aktuelles Verzeichnis: " . ftp_pwd($conn_id) . "<br>";
} else {
    echo "Verzeichniswechsel ist fehlgeschlagen.<br>";
}

// Verbindung schließen
ftp_close($conn_id);
?>

Gruß Frank
 

eaimaster

Benutzer
Mitglied seit
22. Jul 2013
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Das war es , ich hatte beim ftp_chdir Befehl true als scheitern abgefragt und nicht wie es in der Doku steht das Bool, Asche über mein Haupt , nett Euch kennengelernt zu haben.

Wie heisst es so schön, man muß noch einmal über die Sache reden
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Noch ein Tipp im Umgang mit boolschen Werten: immer auch auf Typengleichheit testen. Sonst kann dir der autocast von PHP böse Streiche spielen. Es gibt einige PHP Funktionen, die sowohl boolsche Werte als auch andere Typen zurückgeben können. Ein Bsp wäre strpos() welche die Position einer Zeichenkette innerhalb einer anderen Zeichenkette testet. Sie kann false (bool) zurückgeben wenn der String nicht vorkomment oder die Position des Suchstrings. Nun kann es sein, dass der Suchstring gleich am Anfang der Zeichenkette vorkommt. Dann wird strpos() 0 zurückgeben. 0 wird aber als false gesehen wenn man nicht typensicher vergleicht
PHP:
<?php
if(strpos('Suchen bis gefunden macht immer Spass', 'Suche') == false ){
 echo 'Kommt nicht vor';
}else {
 echo 'Gefunden kommt vor';
}
du wirst mit obigem Code niemals 'Gefunden kommt vor' bekommen, obwohl 'Suche' sehr wohl in 'Suchen bis gefunden macht immer Spass' vorkommt. Das liegt daran, dass der PHP-Interpreter automatisch einen sogn TypeCast macht, wenn unterschiedliche Typen verglichen werden sollen.
Der PHP-Interpreter sieht diesen Code und denkt "hm da will einer einen Integer Wert 0 mit einem boolschen Wert false vergleichen, das kann nicht gehen. hm ich caste den Integer in einen boolean, das ergibt dann ebenfalls false und damit ist die Bedingung wahr" (http://php.net/manual/de/language.types.boolean.php)

Korrekt funzt dieser Code nur so
PHP:
<?php
if(strpos('Suchen bis gefunden macht immer Spass', 'Suche') === false ){
 echo 'Kommt nicht vor';
}else {
 echo 'Gefunden kommt vor';
}
es ist imho eine gute Angewohnheit bei PHP immer typensichere Vergleiche zu machen, auch wenn die Fkt nur einen einzigen Typ zurückgeben kann.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat