【问题标题】:Why does this unlink function not work?为什么这个取消链接功能不起作用?
【发布时间】:2014-09-23 05:43:06
【问题描述】:

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

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>

【问题讨论】:

  • 看来你需要unlink('files/'.$value);
  • @Ohgodwhy:不,$value 似乎有完整的路径。

标签: php checkbox unlink


【解决方案1】:

因为您在 $_POST 超级全局中没有名为 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>

请注意,我们将字段称为deleteFile[]。方括号告诉 PHP 处理与数组同名的所有字段。现在,我们可以使用foreach() 来循环每个值,如下所示:

foreach ($_POST['deleteFile'] as $value)
{
    unlink ($value); // or you might need unlink('files/'.$value);
    $fileError = '&iexcl;&Eacute;xito!';
}

请注意,此类请求不需要enctype 属性。另外,PHP 不像 JS。表单名称与$_POST 中的值无关。

【讨论】:

  • 它会抛出以下错误:警告:/public_html/wysiwyg/files.php 中为 foreach() 提供的参数无效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 2019-10-06
  • 1970-01-01
相关资源
最近更新 更多