为什么这个unlink功能不起作用?

时间:2014-09-22 21:37:14

标签: php checkbox unlink

我希望用户能够通过单击复选框并提交表单来删除文件 标题中的某处:

foreach ($_POST ['files'] ['deleteFile'] as $value)
{
    unlink ($value);
    $fileError = '¡Éxito!';
}

身体某处:

<form enctype="multipart/form-data" method="post" name="files">
<!-- No action attribute was added as the form is processed in the same file -->
<?php
foreach (glob ('files/*.*') as $file)
{
    echo $file . '<input name="deleteFile" type="checkbox" value="' . $file . '">';
}
?>
<input type="submit" value="Confirmar">
</form>

1 个答案:

答案 0 :(得分:2)

因为您在名为$_POST的{​​{1}}超级全局中没有密钥。假设您希望将所选复选框的值添加到files数组中,则应使用以下代码:

$_POST

请注意,我们称之为<form method="post"> <?php foreach (glob ('files/*.*') as $file) { echo $file . '<input name="deleteFile[]" type="checkbox" value="' . $file . '">'; } ?> <input type="submit" value="Confirmar" /> </form> 字段。方括号告诉PHP处理与数组同名的所有字段。现在,我们可以使用deleteFile[]循环遍历每个值,如下所示:

foreach()

请注意,此类请求不需要foreach ($_POST['deleteFile'] as $value) { unlink ($value); // or you might need unlink('files/'.$value); $fileError = '&iexcl;&Eacute;xito!'; } 属性。另外,PHP不像JS。表单的名称与enctype中的值无关。