如何使用POST

时间:2016-04-30 10:52:39

标签: php

对于文件管理系统,我使用此变量,其中是我用于scandir的文件夹:

$dir = 'uploads/sfm/'.$UserID';

用户可以在 $ UserID 文件夹中创建自己的目录。

所有文件都是通过foreach输出的。 要捕获“上传”文件夹形式的路径,我使用:

$Dirname = dirname($dir);
$Basename = basename($dir);

假设我的用户在自己的文件夹中创建了一个文件夹“test”。 我抓住了这条道路:

$Dirname.'/'.$Basename.'/'.$file;

当我回应这个时,我得到:

uploads/sfm/5/test

现在我想通过POST更改$ dir: 在输出的每个文件夹下面我创建了一个表单,当提交时,dir应该改变。

我现在这样做:

<form class="chdir" action="" method="post">
            <input class="hidden" name="<?php echo $Dirname.'/'.$Basename.'/'.$file; ?>" />
            <input type="submit" name="chdir" value="open dir" />
        </form>

我试着像这样改变目录:

$dir = 'uploads/sfm/'.$UserID;

if($_POST['chdir']) {
$NewDirectory = $_POST["$Dirname.'/'.$Basename.'/'.$file;"];
$dir = $NewDirectory;
//echo $dir;

}

我知道语法错误但我希望你理解我想要实现的目标: $ dir 现在应该包含一个新值;所以不要这样: $dir = 'uploads/sfm/'.$UserID';

它现在应该包含这个:

$dir = 'uploads/sfm/'.$UserID.'/test';

实现这一目标的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

由于html中没有class="hidden"类型,您需要将新目录分配给value of hidden field并将name添加到其中

<form class="chdir" action="" method="post">
            <input type="hidden" name="new_directory" value="<?php echo $Dirname.'/'.$Basename.'/'.$file; ?>"/>
            <input type="submit" name="chdir" value="open dir" />
        </form>

获取新目录

$dir = 'uploads/sfm/'.$UserID;
if($_POST['chdir']) {
$NewDirectory = $_POST['new_directory'];// get your new_directory
$dir = $NewDirectory;
//echo $dir;

}