【问题标题】:PHP die() is not executed on bad FTP credentialsPHP die() 不会在错误的 FTP 凭据上执行
【发布时间】:2015-06-06 19:18:10
【问题描述】:

我正在与一些网站合作。有一个将文件发送到 ftp 服务器的脚本。该脚本已完全执行,不应该是因为凭据错误。这是脚本中的代码 sn-p:

// FTP
$host = 'ftp.some.com';
$user = 'user1';
$pass = 'tes22';

$conn = ftp_connect($host, 21) or die ("Cannot connect to host");

ftp_login($conn, $user, $pass) or die("Cannot login");

echo 'it is shown and shouldn\'t be';

真实的凭据当然是不同的,但它们很糟糕(我无法通过 Filezilla 连接到这个 FTP,甚至无法 ping 它。所以服务器应该从 die() 方法返回“无法连接到主机”消息但它没有 --> echo 被执行。如何调试这样的东西?这种行为可能有哪些问题?

【问题讨论】:

  • 它适合我。当凭据错误时,我得到无法登录(不是无法连接到主机)。您是否收到来自ftp_login 的任何 PHP 警告?

标签: php ftp die


【解决方案1】:

我已尝试执行此 sn-p。在第 8 行,您尝试登录或死亡。但是,ftp_login?如果发生错误,抛出 php 警告。 psysh 中的示例:

>>> ftp_login($conn, $user, $pass) or die("Cannot login"); PHP warning: ftp_login(): Login incorrect. on line 1

所以,or 之后的第二个操作数不应该工作,因为 ftp_login 会抛出错误。

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 2015-09-18
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多