2014-01-23 85 views
0

我有通過FTP不斷更新信息的文件。在我的「index.php」(在另一個網站上),我有3個不同的iframe。在每個這樣的iframe中,都有一個PHP文件按定義的時間重新加載(例如每隔三秒)。現在,這三個PHP文件分別在文件的開始處分別打開一個到FTP的連接,然後讀取位於FTP上的文件中的內容。然後在文件結尾他們關閉FTP連接。一段時間後FTP連接錯誤

這很好,直到一段時間後錯誤代碼開始彈出。

的錯誤是:

ftp_login()預計參數1是資源

我懷疑是打開的連接的最大數目已經重寫了,但因爲我每次關閉FTP連接我打開它不應該是可能的權利?任何人都有一個想法,我可以如何阻止這個「bug」?

在iframe的一個PHP文件的一個示例:

<script> 
var myVar=setInterval(function(){myTimer()},1000) 
function myTimer() 
{ 
location.reload(); 
} 
</script> 
<?php 
$conn_id = ftp_connect($ftp_adress); 

// login with username and password 
$login_result = ftp_login($conn_id, $username, $password); 

// check connection 
if ((!$conn_id) || (!$login_result)) { 
    echo "FTP connection has failed!"; 
    exit; 
}else{ 
    echo "FTP connected"; 
} 

//Collect contents from FTP 
if(ftp_close($conn_id)){ 
echo "FTP-closed"; 
}else{ 
echo "FTP did not closed"; 
} 
?> 
+0

每個重新加載都是一個完全獨立的http請求,導致調用一個新的php來運行你的ftp命令。除非你在服務器上發生了一些奇怪的事情,否則PHP腳本的結尾也應該是該腳本建立的ftp連接的結尾。 –

+0

這是不是單獨的http requset?由於他們在iframes? – Anton

+0

是的。你會有3個iframe運行3個http請求,運行3個php腳本,總共有3個ftp連接。 –

回答

0

這將幫助,如果你不只是說the error code starts to pop-up而是告訴我們什麼顯示錯誤。在故障時打印也可能有幫助。也就是說,許多FTP服務器通過限制相同IP或同一用戶在給定的時間內連接的頻率來防止DOS攻擊。如果每秒平均有1次登錄,則可能觸發此操作。

+0

是的,我forgott發佈錯誤代碼抱歉,錯誤代碼是「ftp_login()參數1成爲資源「 但是有時候錯誤的傀儡,然後消失 – Anton

+0

我現在已經檢查,似乎沒有相同的IP的限制。 – Anton