2010-06-14 76 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進行檢索。一些關於登錄呼叫失敗的診斷信息可能存儲在那裏。