由于 if isset 无法执行函数

Unable to execute a function because of if isset

我正在尝试制作一个类似于 Monsta FTP 的网络 ftp 浏览器。目前我正在尝试制作一个将当前目录切换到我单击的目录的功能。

这是目前的样子:


PHP (index.php):

<?php
if(isset($_POST['file_name'])) {
    $file_name = $_POST['file_name'];
    ftp_chdir($ftp_conn, $file_name);
    echo "<p>".ftp_pwd($ftp_conn)."<p>";
}

// connect to the FTP server
$ftp_server = "xxxxxxxxx";
$ftp_username = "xxxxxxxxx";
$ftp_userpass = "xxxxxxxxx";
$ftp_conn = ftp_connect($ftp_server, 21) or die("Could not connect to $ftp_server");
if ($ftp_conn === false) {
    echo "Unable connect to the ftp server.<br>";
} else {
    echo "Succesfully connected to the ftp server.<br>";
}

//login to the FTP server
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
if ($login === true) {
    echo "Succesfully logged in to the ftp server.";
} else {
    echo "Unable to log in to the ftp server.";
}

//get a list of all files and folders
$contents = ftp_nlist($ftp_conn, '/');
echo "<ul>";
for ($i = 0 ; $i < count($contents) ; $i++) {
    echo "<li><a href=\"#\" onclick=\"post(this.id);\" id=\"".$contents[$i]."\">".$contents[$i]."</a></li>";
}
echo "</ul>";

// close connection
ftp_close($ftp_conn);
?>
<!DOCTYPE html>
<html>
<head>
    <title>FTP file menager</title>
</head>
<body>
<script src="js/jquery.js"></script>
<script src="js/functions.js"></script>
</body>
</html>

JS (functions.js):

function post(vally) {
    var name = vally;
    $.post('index.php', {file_name:name}, function(data) {});
    console.log('posted');
}

当我单击其中一个带有文件夹名称的链接时,我在控制台中看到 "posted",这意味着 JQuery(我使用的是 JQuery 3.2.1 下载自jquery.com) 发布了数据,但我没有收到来自 PHP 的任何警报或回声。我尝试在与 ftp 服务器建立连接之前和之后放置 if (),但我仍然一无所获。

有人知道为什么我的代码不起作用吗?

尝试删除 ftp_close($ftp_conn);,因为它会在 js 被加载之前关闭 ftp 连接,因此 php 无法再执行 ftp 命令,除非您打开 ftp isset().

中的连接