猿问

由于 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');

}

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


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


千巷猫影
浏览 213回答 1
1回答

吃鸡游戏

尝试删除,ftp_close($ftp_conn);因为它会在 js 加载之前关闭 ftp 连接,因此 php 无法再执行 ftp 命令,除非您在isset().
随时随地看视频慕课网APP
我要回答