2016-05-27 8 views
0

ファイル管理については、すべてのファイルが表示されるforeachループを使用します。今度はforeach$_POSTのファイルを削除します。foreachループ内のファイルを投稿とリンク解除する方法

各ファイルのforeachにpathinfo($dir.'/'.$file, PATHINFO_DIRNAME).'/'.$file;を表示すると、ファイルの正確な場所が表示されます。 は今、私はforeachループ内でこのような何かをしたいファイルごとに:

if(isset($_POST['delete'])) { 
    unlink($_POST['unlink']); 
} 
<form method="post"> 
      <input type="hidden" name="unlink" value="<?php pathinfo($dir.'/'.$file, PATHINFO_DIRNAME).'/'.$file; ?>" /> 
      <input type="submit" name="delete" value="Delete"> 
     </form> 

私は、これは正しくありません知っているが、私はあなたが何を達成したいことは明確であることを理解してほしいです。 どうすればいいですか?

+1

あなたはそれが悪くなるとは思わない? – PeeHaa

+0

パスを実際に印刷する 'echo'を追加するのはどうですか?完全にセキュリティ保護されていないBTW –

+0

一度にファイルを1つずつ、または複数削除しますか? – MonkeyZeus

答えて

1

免責

以下に説明する方法は、100%安全ではないとコードは公共の領域にそれを作る場合、あなたはあなたのサーバーの別れにキスすることができます。


つのファイルを削除するために、あなたはこれを行うことができます。

のindex.php

<form method="POST" action="delete.php"> 
    <input type="hidden" name="delete_path" value="/path/to/your/file.pdf"> 
    File.pdf <button type="submit">Delete</button> 
</form> 

delete.php

<?php 
$delete_result = false; 
$unlink_error = ''; 

if(isset($_POST['delete_path']) && is_file($_POST['delete_path'])) 
{ 
    $delete_result = unlink($_POST['delete_path']); 
    $unlink_error = error_get_last(); 
} 

if($delete_result) 
{ 
    echo 'Successfully deleted '.$_POST['delete_path']; 
} 
else 
{ 
    echo 'Uh oh, Spaghettios :(<br><br>'; 
    echo 'Last known error<br>'.$unlink_error; 
} 
+2

'error_get_last() 'に1+ –

0

私が使用パスのリンク解除を( FILE) echo $ new_file_dert = FILE。 '/'.$template_name;

      <form method="post"> 
           <input type="hidden" name="unlink" value="<?php echo $new_file_dert; ?>" /> 
           <input name="delete" type="submit" class="btn-delete submitdelete" value="Delete"> 
          </form>  



         <?php 

エコー$のnew_file_dert = FILE。 '/'.$template_name;

       if(isset($_POST['delete'])) { 
           unlink($_POST['unlink']); 



          } 
関連する問題