【发布时间】:2014-01-24 03:53:53
【问题描述】:
我的文件通过 FTP 不断更新信息。在我的“index.php”(在另一个站点上)中,我有 3 个不同的 iframe。在这些 iframe 中的每一个中,都有一个 PHP 文件在定义的时间(例如每三秒)重新加载。现在这三个 PHP 文件分别打开一个到 FTP 的连接,在文件的开头,然后读取位于 FTP 上的文件中的内容。然后在文件末尾关闭 FTP 连接。
这很好,直到一段时间后错误代码开始弹出。
错误是:
ftp_login() 期望参数 1 是资源
我怀疑打开连接的最大数量已被覆盖,但由于我每次打开 FTP 连接时都关闭了它,这应该是不可能的吧?有人知道如何阻止这个“错误”吗?
其中一个 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";
}
?>
【问题讨论】:
-
每次重新加载都将是一个完全独立的 http 请求,从而导致调用一个新的 php 来运行您的 ftp 命令。除非您在服务器上发生了一些奇怪的事情,否则 php 脚本的结尾也应该是该脚本建立的 ftp 连接的结尾。
-
这不是单独的http请求吗?因为它们在 iframe 中?
-
是的。您将有 3 个 iframe 运行 3 个运行 3 个 php 脚本的 http 请求,总共有 3 个 ftp 连接。
-
但这将创建三个打开的连接,它可以在开始时处理,所以我认为这不是问题(同时打开三个连接)。还是您有其他想法?
-
你检查过ftp服务器是否有限速器吗?也许您不允许每 Y 分钟或其他任何时间登录超过 X 次。