Faqts : Computers : Programming : Languages : PHP : Common Problems : FTP

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

8 of 13 people (62%) answered Yes
Recently 6 of 10 people (60%) answered Yes

Entry

Are there any issues with using php's ftp functions from within a firewall? It seems that the connection consistently times out in this environemnt.

Feb 23rd, 2001 02:12
Onno Benschop, Colby Meyer, http://www.php.net/manual/en/function.ftp-pasv.php


To connect to an FTP server from within a firewall you can use passive-
mode ftp. Basically, open the conneciton, turn passive-ftp on, do your 
stuff.
The php sample becomes:
<?php
// set up basic connection
$conn_id = ftp_connect("$ftp_server"); 
// login with username and password
$login_result = ftp_login
($conn_id, "$ftp_user_name", "$ftp_user_pass"); 
// check connection
if ((!$conn_id) || (!$login_result)) { 
        echo "Ftp connection has failed!";
        echo "Attempted to connect to $ftp_server for user $user"; 
        die; 
    } else {
        echo "Connected to $ftp_server, for user $user";
    }
// turn on passive mode transfers
ftp_pasv ($conn_id, true) ;
// upload the file
$upload = ftp_put($conn_id, "$destination_file", "$source_file", 
FTP_BINARY); 
// check upload status
if (!$upload) { 
        echo "Ftp upload has failed!";
    } else {
        echo "Uploaded $source_file to $ftp_server as 
$destination_file";
    }
// close the FTP stream 
ftp_quit($conn_id); 
?>