PHP die()不会在错误的FTP凭据上执行


PHP die() is not executed on bad FTP credentials

我正在处理一些网站。有一个脚本可以将文件发送到ftp服务器。脚本已完全执行,不应该是因为凭据不正确。以下是脚本中的代码片段:

// 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()方法返回"Cannot connect to host"消息,但它没有执行-->echo。如何调试这样的东西?这种行为可能会产生什么问题?

我尝试过执行这个代码段。在第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抛出错误。