【发布时间】:2010-05-25 23:52:06
【问题描述】:
可能重复:
Warning: mysql_fetch_row() expects parameter 1 to be resource
我以前问过这个问题,但方式不同。我正在尝试获取表单数据,编译成临时 CSV 文件并尝试通过 SSL 上的 FTP 发送到客户端(这是我有兴趣听取解决方案的唯一途径,除非有解决方法,否则我无法做到变化)。我尝试了以下方法:
- ftp_connect - 没有任何反应, 页面超时
- ftp_ssl_connect - 没有任何反应, 页面超时
- curl 库 - 相同的东西,给定 URL 它也会出错。
我收到以下信息:
- FTPS 服务器 IP 地址
- TCP 端口 (1234)
- 用户名
- 密码
- 转储文件的数据目录
- FTP 模式:被动
非常非常基本的代码(我认为至少应该启动连接): 代码:
<?php
$ftp_server = "00.000.00.000"; //masked for security
$ftp_port = "1234"; // masked but not 990
$ftp_user_name = "username";
$ftp_user_pass = "password";
// set up basic ssl connection
$conn_id = ftp_ssl_connect($ftp_server, $ftp_port, "20");
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, true);
echo ftp_pwd($conn_id); // /
echo "hello";
// close the ssl connection
ftp_close($conn_id);
?>
当我在 SmartFTP 客户端上运行它时,一切正常。我只是无法使用 PHP 让它工作(这是必需的)。过去有没有人成功做到这一点?我很想听听您的方法。
编辑 我在 ftp_login 之后添加了 ftp_pasv() 命令,如下所述,但仍然无法连接。我收到以下错误:
警告:ftp_login() 需要参数 1 为资源,布尔值 C:\xampp\htdocs\test.php 第 12 行
警告:ftp_pasv() 需要参数 1 为资源,布尔值 C:\xampp\htdocs\test.php 第 14 行
警告:ftp_pwd() 需要参数 1 作为资源,布尔值 C:\xampp\htdocs\test.php 第 16 行
警告:ftp_close() 需要 参数 1 为资源,布尔值 在 C:\xampp\htdocs\test.php 中给出 第 20 行
【问题讨论】:
-
您使用的是有效的 SSL 证书还是自签名 SSL 证书? Curl 将尝试根据证书颁发机构验证 SSL 证书。 SmartFTP 你可以点击过去的 SSL 证书验证。 PHP 的
ftp_ssl_connect()也可能会尝试验证 SSL 证书。 -
@Geek Num 88 - 我正在使用通过 Go Daddy 获得的有效 ssl 证书
-
当你使用 smartFTP 时,ssl 是否在端口 20 上工作?通常是 21 端口。
-
@JM4 还有一些想法,
ftp_pasv()需要在ftp_login()之后调用。你检查过你的错误日志吗? -
@JM4 也只是为了确保 remote 服务器需要有效的 SSL 证书而不是您的服务器