PHP 删除错误


PHP delete error

我有一个下拉列表,其中填充了使用下面列出的 PHP 从目录中提取的文件,并试图弄清楚如何在选择它们时使用表单中的删除按钮删除它们。

编辑取消链接功能错误已解决。

尝试删除时仍然出错: Error.array(1) { ["Action"]=> string(6) "Delete" }

<input type="hidden" name="Action" value="EDIT" /><input type="hidden" name="Selection"  id="Selection" value="-1"><div>Below is the list of your saved codes. To edit your codes, select it from the list.</div>
<select size="1" name="CodeList" id="CodeList">
<?php
   $directory = $directory = 'users/' . $_SESSION['username'];
   $filesContents = Array();
   $files = scandir( $directory ) ;
    foreach( $files as $file )
   {
  if ( ! is_dir( $file ) )
 {
   $filesContents[$file] = file_get_contents($directory , $file);
      echo '<option value="'. $file .'">' . $file . '</option>';
   }
  }
?>

删除 PHP 脚本。

   <?php
   session_start();
    $directory = $directory = $_SERVER['DOCUMENT_ROOT'] . '/users/' .      $_SESSION['username'];
    $file_to_delete = $_POST['CodeList'];
    if(is_file($directory .'/'. $file_to_delete) && is_writable($directory .'/'. $file_to_delete)) {
    if ( unlink ($directory.'/'.$file_to_delete) ) {
      echo $file_to_delete . " deleted.";
    } else {
  echo "Error.";
  }
 }
?>
<?php var_dump($_POST) ?>

添加选项,但没有选项。选择框应如下所示:

<select name="identifier">
    <option value="value_1">Option 1</option>
    <option value="value_2">Option 2</option>
</select>

现在,如果您选择选项 2,您应该在 post 数组中获取value_2:

echo $_POST['identifier']; // prints out 'value_2';

您的选项如下所示:<option>Option x</option> ,这意味着您选择一个选项,但它没有值(无value=""属性)。

如果您查看PHP错误,我确实看到正确的目录名称,但没有附加文件名。

您还应该检查该文件是否存在,以防止出现"没有此类文件"错误:

if(is_file($directory .'/'. $file_to_be_deleted) && is_writable($directory .'/'. $file_to_be_deleted)) {
    // delete the file
}

是的,我使用 is_file AND is_writable 测试,因为如果检查的路径是目录,is_writable函数也会返回true

编辑

要分配值,请按如下方式更改 foreach 循环:

<select size="1" name="CodeList" id="CodeList">
    <?php
    // fetch files etc.
    foreach( $files as $file ) {
        if ( ! is_dir( $file ) {
            echo '<option value="'. $file .'">' . $file . '</option>';
        }
    }

哦,顺便说一句:摆脱get_file_contents()部分。你没有对那里的文件内容做任何事情,是吗?

我们可以为此使用 Javascript

删除选项 :

 $("#selectBox option[value='option1']").remove();

添加选项 :

 $("#selectBox").append('<option value="option5">option5</option>');

希望这会有所帮助!