会话中的PHP FTP连接

时间:2015-09-11 21:09:05

标签: php session ftp

将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']);

由于

2 个答案:

答案 0 :(得分:1)

您不能在会话变量中存储ftp_connect。我的建议是将登录的凭据存储在$_SESSION变量中,然后在单独的页面上仅使用您存储的凭据创建一个ftp_connect即可用于执行所需的操作去做。如果需要当前目录,则每次请求都必须发送该目录。

答案 1 :(得分:0)

admin_username = "azureroot" admin_ssh_key { username = "azureroot" public_key = "xxxxxxxxx" } 函数返回类型为ftp_connect的数据,如here官方文档中所述:

警告 由于会话数据是序列化的,因此资源变量无法存储在会话中。

因此显然您无法做到这一点,一种解决方案是将连接保存到文件而不是会话存储中。