Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jan Štrobl
Člen
Avatar
Jan Štrobl:3.6.2021 12:37

Ahoj, snažím se udělat script na úpravu adresářový struktury na FTP. Udělal jsem si následující script, který mi fungoval perfektně, poté jsem udělal nějaké úpravy, čímž jsem to rozbil, tak jsem jej smazal a nyní když jsem to složil znovu, tak mi již nefunguje..

Zkusil jsem: Jedná se o tenhle kód

$conn_id = ftp_connect($ftp_server, $ftp_server_port);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_set_option($conn_id, FTP_USEPASVADDRESS, false); // set ftp option
ftp_pasv($conn_id, true); //make connection to passive mode

if ((!$conn_id) || (!$login_result)) {
    die("FTP connection has failed !");
}

$check_dir = ftp_nlist($conn_id, ".");
var_dump($check_dir);

Předtím mi dump vypsal array všech adresářů i souborů, nyní ale vrací hodnotu false a nedokážu přijít na to proč. Připojení a přihlášení je OK.

Chci docílit: Obecně potřebuji script, který mi zjistí existenci určitých adresářů a pokud nebudou existovat, tak je vytvoří. Předem díky za jakékoliv nasměrování.

 
Odpovědět
3.6.2021 12:37
Avatar
Jan Štrobl
Člen
Avatar
Jan Štrobl:3.6.2021 14:35

Poznatek, pokud tenhle script nahraju na nějaký sdílený hosting (koupený), a připojím se na jiný, tak to šlape.. nefunguje to pouze z webserveru co mám na VPS.

 
Nahoru Odpovědět
3.6.2021 14:35
Avatar
Jan Štrobl
Člen
Avatar
Jan Štrobl:3.6.2021 15:06

Tak se mi to podařilo vyřešit. Byl to běh na dlouhou trať takže se rád podělím o výsledky.
Velmi často je problém se spojením, proto je potřeba u při připojení na FTP využít pasivní režim

ftp_pasv($conn_id, true); //make connection to passive mode

Často také doporučují upravit nastavení, to jsem ale osobně zatím efektivně nevyužil

ftp_set_option($conn_id, FTP_USEPASVADDRESS, false); // set ftp option
ftp_pasv($conn_id, true); //make connection to passive mode

Pokud máte ověřeno, že spojení funguje, máte i pasivní režim a přesto Vám var_dump stále vypisuje bool(false), tak se zaměřte na složku temp složku webserver. V mém případě se ukázalo že jsem ji nějak smazal a byla to celá příčina.

 
Nahoru Odpovědět
3.6.2021 15:06
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.