将PHP FTP连接放入会话变量后,我遇到了麻烦。
我让index.php对输入信息进行一般性检查,然后指向connect.php进行连接并登录。一旦登录,它就会指向setup.php。安装程序是为了下载相关文件,但当我指向FTP方法的会话变量时,它只返回false / null。我试过建立一个连接,改变目录等没有会话,这是有效的。我也尝试将会话变量放入变量但不起作用。我确保将FTP变量放入会话中。我做错了什么?
//setup.php
<?php
session_start();
if(!isset($_SESSION['conn_id']))
{
header("Location: index.php");
exit();
}
$dir = "/home/oliver/";
ftp_chdir($_SESSION['conn_id'], $dir);
var_dump(ftp_nlist($_SESSION['conn_id'], "."));
ftp_close($_SESSION['conn_id']);
由于
答案 0 :(得分:1)
您不能在会话变量中存储ftp_connect
。我的建议是将登录的凭据存储在$_SESSION
变量中,然后在单独的页面上仅使用您存储的凭据创建一个ftp_connect
即可用于执行所需的操作去做。如果需要当前目录,则每次请求都必须发送该目录。
答案 1 :(得分:0)
admin_username = "azureroot"
admin_ssh_key {
username = "azureroot"
public_key = "xxxxxxxxx"
}
函数返回类型为ftp_connect
的数据,如here官方文档中所述:
警告 由于会话数据是序列化的,因此资源变量无法存储在会话中。
因此显然您无法做到这一点,一种解决方案是将连接保存到文件而不是会话存储中。