0

特定のフォルダーからファイルを表示し、選択したファイルを削除するための [削除] ボタンを使用して、ドロップダウン リストを作成しようとしています。

ドロップダウンリスト:

<?php
    $dirname = "files";
    $dir = opendir($dirname);
    echo '<form action="delete.php" method="get">';
    echo '<select name="file2">';
    while(false != ($file = readdir($dir)))
    {
        if(($file != ".") and ($file != ".."))
        {
            echo "<option value=".$file.">$file</option>";
        }
    }
    echo '</select>';
    echo '<input type="submit" value="Delete" class="submit" />';
    echo '</form>';
?>

delete.phpファイル:

<?php
    $dirpath = "files";
    $file_to_delete = $_POST['file2'];
    if ( unlink ($dirpath.'/'.$file_to_delete) ) {
        echo $file_to_delete . " deleted.";
    } else {
        echo "Error.";
    }
?>

次に、ファイルを選択して削除を押しようとすると、次のエラーが表示されます。

警告: unlink(files/): Is a directory in /xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/delete.php 行 4 エラー。

xxx はプライバシーのために削除されました :) 削除しようとしているファイルはすべて chmod 777 です。削除しようとしているのは単に .txt ファイルです。

ここで何が欠けているのか、何が間違っていたのかわかりません... :/

4

1 に答える 1

2

$_GETあなたのフォームには次のものがあるため、それはmethod="get"です:

$file_to_delete = $_GET['file2'];

それで:

<?php
    $dirpath = "files";
    $file_to_delete = $_GET['file2'];
    if ( unlink ($dirpath.'/'.$file_to_delete) ) {
        echo $file_to_delete . " deleted.";
    } else {
        echo "Error.";
    }
?>

投稿したい場合は、フォームを に変更してくださいmethod="post"

于 2012-09-06T13:25:53.403 に答える