在$ _POST请求中传递变量值

时间:2019-05-20 11:22:16

标签: php

我正在使用electronic和php创建一个自定义ftp跨平台客户端。我创建了一个简单的php类,该类应该管理ftp连接,文件上载和删除,现在我想在电子应用程序中实现它。我有一个问题,当我尝试向用户提示登录表单后,才能上传文件。用户插入ftp登录凭据后,应该使用ajax请求进行登录。问题是登录将不会发生,这将导致无法上传。工作流程是,在发出第一个帖子后,将实例化用于管理登录名的包装器类,然后在此之后,将上载表单加载到应用程序内部,但不会发生任何上载。使用“网络”选项卡,我可以检查请求,并且我所做的控制器将始终提供200状态代码,不会记录任何错误。我认为问题是因为连接没有跨请求传递。 是否可以在$ _POST请求之间传递变量?对不起,我这个愚蠢的问题和英语。感谢您的帮助。

下面是我的代码段:

用于ajax请求的控制器:

<?php
session_start();

spl_autoload_register(function($class_name){
  $class_name = str_replace('//', DIRECTORY_SEPARATOR,  $class_name);
  require_once "$class_name.php";
});

global $ftp_connection;
global $ftp_manager;

if( isset( $_POST['ftp_login'] ) ){
  $ftp_connection = new FTPConnect( $_POST['host'], $_POST['username'], $_POST['password'] );
}

if( isset( $_POST['upload_file'] ) ){
  $ftp_manager = new FTPManager( $ftp_connection );
  $dir = 'sub.mydomain.net';
  echo $ftp_manager->upload($_FILES['uploaded_file'], $dir);
}


?>

Ftp连接包装器类代码:

<?php
/**
 *
 */
class FTPConnect{

  private $connection;
  private $host;
  private $username;
  private $password;

  public function __construct(string $host, string $username, string $password)
  {
    // If I try to assign the resource it will not work
    //$this->connection = ftp_connect($host);
    $this->conn = $this->connect( $username, $password );
  }

  public function getConnection()
  {
    return $this->connection;
  }

  public function connect(string $host, string $username, string $password)
  {
    //$this->connection = ftp_connect($host);
      if( $this->connection && ftp_login($this->connnection, $user, $password) ){
        ftp_pasv( $this->connection, true );
        echo "Connected.!";
      }
  }

  public function disconnect()
  {
    return ftp_close($this->connection);
  }

  public function __destruct()
  {
    $this->disconnect();
  }

}

?>

编辑:

我认为连接包装类内部存在错误。我可以序列化和反序列化会话变量中的对象,但是ftp管理类存在问题。问题在于它将需要资源,并且连接包装器类正在传递整数。如何解决此问题,以将ftp_connect资源传递给该类的上载方法?

0 个答案:

没有答案