Error with connecting ftp through php
I'm trying to connect to my server using php script to upload some files...
But it doesn't connect...
I dont know what is the error...
I'm sure that ftp is enable, i checked it through php_info()
What may be the error...
<?php
error_reporting(E_ALL);
$ftp_server = "server.com"; //address of ftp server (leave out ftp://)
$ftp_user_name = "Username"; // Username
$ftp_user_pass = "Password"; // Password
$conn_id = ftp_connect($ftp_server); // set up basic connectio开发者_如何学运维n
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass)) {
echo "Connected as ,$ftp_user_name,$ftp_user_pass \n";
} else {
echo "Couldn't connect \n";
}
.....
.....
....
....
ftp_close($conn_id); // close the FTP stream
?>
maybe you have to turn on the passive mode by doing:
ftp_pasv($conn_id, true);
directly after your ftp_login
PS: why do you do a double login? write
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result) {
instead of
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass)) {
This looks wrong to me:
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass)) {
You should just need:
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass);
if ($login_result) {
Otherwise it will attempt to log in twice, this could be the issue.
Also try adding or die
to the ftp_conect
to see if it can even connect to server.
$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");
- Check the server you're trying to connect actually accepts connections from wherever this script is running from by using a regular FTP client. Your code may be correct but the FTP server isn't accepting connections from your server, or there's a firewall blocking things.
- Most PHP functions will log error information internally that you can retrieve with
error_get_last()
and/or $php_errormsg. Some diagnostic information as to why the login call is failing may be stored in there.
精彩评论