2010-06-14 75 views
3

我试图使用PHP脚本上传一些文件连接到我的服务器连接FTP ......错误通过PHP

但它不连接...

我不知道是什么错误...

我敢肯定,FTP是启用,我检查过php_info()

什么可能是错误...

<?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 connection 

$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 
?> 

回答

4

也许你有这样做,打开被动模式:

ftp_login

PS后

ftp_pasv($conn_id, true); 

直接:你为什么要做一个双登录?写

$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass); 

if ($login_result) { 

,而不是

$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)) { 
+0

我试过了,仍然显示“无法连接”的错误。 我删除了额外的连接标记 – Vijay 2010-06-14 11:40:52

0

这看起来我错了:

$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)) { 

你应该只需要:

$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass); 

if ($login_result) { 

否则,它会尝试登录两次,这可能是问题。

也尝试将or die添加到ftp_conect以查看它是否可以连接到服务器。

$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); 
0
  1. 通过使用常规的FTP客户端检查你试图连接实际上是接受来自哪里这个脚本运行的连接服务器。您的代码可能是正确的,但FTP服务器不接受来自服务器的连接,或者防火墙阻止了某些事情。
  2. 大多数PHP函数都会在内部记录错误信息,您可以使用error_get_last()和/或$ php_errormsg进行检索。一些关于登录呼叫失败的诊断信息可能存储在那里。