note 109124 deleted from function.ftp-login by googleguy
| From: | googleguy@php.net | Date: | Tue, 22 Oct 2013 12:17:31 +0000 |
| Subject: | note 109124 deleted from function.ftp-login by googleguy | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-197147@lists.php.net to get a copy of this message | ||
Note Submitter: Patrick Otto
----
<?php
# This function fix problems with ftp login validation
function connect_send_ftp($ftp_server, $ftp_user_name, $ftp_user_pass, $remote_name, $local_name) {
// valid host connection
if (!ftp_connect($ftp_server))
return false;
$conn_id = ftp_connect($ftp_server);
// valid ftp login params, fast check
if(empty($ftp_user_name) or empty($ftp_user_pass))
return false;
// using curl to valid login, fast check
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,'ftp://'.preg_replace('/^ftp[:]\/\//i','',$ftp_server));
curl_setopt($curl, CURLOPT_FTPLISTONLY, 1);
curl_setopt($curl, CURLOPT_USERPWD, $ftp_user_name.":".$ftp_user_pass);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$valid_login = curl_exec ($curl);
// valid ftp login, primary
if(!$valid_login)
return false;
// valid ftp login, secondary
if(!ftp_login($conn_id, $ftp_user_name, $ftp_user_pass))
return false;
// passive result
$passive_result = ftp_pasv($conn_id, true);
// save file send erros
$error = ftp_put($conn_id, $remote_name, $local_name, FTP_ASCII);
// close connection
ftp_close($conn_id);
// return success or send erros
return $error;
}
// set params
$ftp_server = "ftp.example.com"
$ftp_user_name = "user";
$ftp_user_pass = "password";
$remote_name = "my_remote_file_dir";
$local_name = "my_local_file_dir";
// call the function
$conn = connect_send_ftp($ftp_server, $ftp_user_name, $ftp_user_pass, $remote_name, $local_name);
// valid response
if(!$conn)
die("FTP login failed..")
// if not erros, success
echo "FTP login and file sended sucessfull!"
?>