[PHP] funzione ftp_nlist()

Pubblicità

nosokeyboard

Utente Attivo
Messaggi
5
Reazioni
0
Punteggio
24
Ciao a tutti,
avrei un problema con la funzione ftp_nlist() di PHP.
Una volta connesso al server FTP non riesco a mostrare la lista di file che sono caricati sul server (ovviamente nemmeno se cerco in una determinata directory).

Leggendo in internet, trovo sostanzialmente questo codice:
<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server
);
//ritorna un id (quindi connessione avvenuta)

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass
);
//ritorna 1 (quindi login avvenuto)

// get contents of the current directory
$contents = ftp_nlist($conn_id, "."
);
oppure si può mettere il nome della cartella o il path in cui cercare
$contents = ftp_nlist($conn_id, "miaCartella");

// output $contents
var_dump($contents
);
// ritorna bool(false) (quindi lettura vuota, presumo)

?>
oppure con la funzione "print_r" al posto di "var_dump".

Se non altro con queste due funzioni di stampa mi viene fuori scritto: "bool(false)"
mentre con una semplice "echo" (alla fine le si prova tutte) non viene stampato nulla.
Qualcuno ha esperienza a riguardo?
Sapete dirmi quale può essere il problema?
 
Butto lì un'altra idea: una volta aperta una connessione FTP, in modalità attiva il server cerca di aprirne un'altra verso di te (la prima connessione è per l'invio dei comandi, la seconda per la trasmissione dei dati); se sei dietro un firewall o nat, il server non riesce a raggiungerti, quindi non funziona un tubo.

Per risolvere devi usare la modalità passiva, chiamando la funzione
PHP: ftp_pasv - Manual
dopo il login... fai un tentativo :)
 
La butto li`, hai il +r sulla directory ?
Grazie del suggerimento, non essendo esperto di permessi ti dico subito che sicuramente NON sono collegato col profilo di Amministratore
Immagino +r sia il permesso di lettura, o sbaglio? Credo che, essendo il server FTP su dominio aruba, probabilmente utilizzare la funzione ftp_chmod() per modificare i permessi sia vista come un'operazione dannosa ai fini di Aruba e quindi (temo) si rischi il blocco dell'utente.
Lo dico per esperienza... dopo aver usato la suddetta funzione poco fa (utilizzando il parametro mode="777") ho riscontrato di non poter più loggarmi al FTP (la risposta del server è stata: "login incorrect") e quindi il mio superiore ha dovuto creare un nuovo user per accedere al FTP in attesa di contattare aruba e chiedere chiarimenti e recuperare l'account precedente.
Forse la modalità +r è da attivare direttamente dal profilo Amministratore? Nel caso ne parlerò col mio superiore per attuare la modifica.


---------- Post added at 18:13 ---------- Previous post was at 18:03 ----------

Butto lì un'altra idea: una volta aperta una connessione FTP, in modalità attiva il server cerca di aprirne un'altra verso di te (la prima connessione è per l'invio dei comandi, la seconda per la trasmissione dei dati); se sei dietro un firewall o nat, il server non riesce a raggiungerti, quindi non funziona un tubo.

Per risolvere devi usare la modalità passiva, chiamando la funzione
PHP: ftp_pasv - Manual
dopo il login... fai un tentativo :)

Ciao grazie della risposta.
Ho provato ma la risposta del server non cambia. Restituisce sempre bool(false).
Non saprei proprio quale sia il problema.
 
Sappi che i permessi sulle dir sono:

4=+r , per listare il contenuto della directory, se non hai il +r non puoi vederne il contenuto ma devi arrivare direttamente alla risorsa

2=+w per creare, modificare il contenuto della dir, tipo spostare un file nella dir

1=+x per entrarci nella dir

Detto questo, se il login va a buon fine ma il tentativo di vedere la lista dei file ti ritorna FALSE e` piu` probabile che tu non abbia i permessi +r piuttosto che la directory sia vuota, perche` in ogni caso dovresti vedere almeno "." e ".."

quindi o provi a eseguire una get su un file e vedi se te lo fa aprire (quindi sei entrato e hai +x), e in quel caso ti manca +r o chiedi che siano sistemati i permessi su 0744
 
Ultima modifica:
Pubblicità
Pubblicità
Indietro
Top