2017-04-13 11 views
0

私はユーザがサーバー上のフォルダからdelete imageshtml formPHPまでを許可しようとしています。PHP/HTML - フォーム処理で問題が発生する - unlink()警告

私のhtmlフォームマークアップと、前述のフォルダからリストimagesを生成するPHPスクリプトがあります。パス+ファイル名のチェックボックスをvalueと追加しました。私はこのエラー続ける

<?php 
      $path = "."; 
      $dh = opendir($path); 
      $i=1; 
      $deletepath = glob('deleteform'); 
      while (($file = readdir($dh)) !== false) { 
        unlink($deletepath); 
        $i++; 
      } 
?> 

<form action="delete.php" method="POST"> 
    <div id="formlist"> 

      <?php 
      $path = "."; 
      $dh = opendir($path); 
      $i=1; 
      $images = glob($path."*.png"); 
      while (($file = readdir($dh)) !== false) { 
       if($file != "." && $file != ".." && $file != "index.php" && $file != "form.css" && $file != ".htaccess" && $file != "error_log" && $file != "cgi-bin") { 
        echo "<div class='formshow'><a href='$path/$file' data-lightbox='Formularze' data-title='$file'><img class='formimg' src='$path/$file' width='500px'/></a><input type='checkbox' name='deleteform' value='$path/$file'></div>"; 
        $i++; 
       } 
      } 
      closedir($dh); 
      ?> 

    </div> 
    <input type="submit" value="Usun zaznaczone formularze"> 
</form> 

は今、ここに私のdelete.phpファイルです

Warning: unlink() expects parameter 1 to be a valid path, array given

私はPHPとはかなり緑だが、私は君たちを依頼することを決めた - どのように私はこの仕事をしてもいいですか?それは私にunserialize()[0][1]カウンターを追加する必要がありますか?

$directory = "folder/"; 
    if ($cat_handle = opendir($directory)) { 
     while (false !== ($entry = readdir($cat_handle))) { 
      @unlink($directory.$entry); 
     } 
     closedir($cat_handle); 
    } 

あなたはitensまたはフォルダを削除する必要があります。このフォルダのユーザーのすべてのitensを削除するには

+0

まず '$ deleteepath'を' vardump'して、配列ではなく文字列であることを確認してください。 –

+0

@BagusTesaチェックするチェックボックスの数にかかわらず、私はいつも ' string'(20) "./1492033022form.png" ' –

+1

をチェックします。チェックしたチェックボックスの数にかかわらず、* [よくある質問]チェックボックス入力](http://stackoverflow.com/questions/4997252/get-post-from-multiple-checkboxes)まだですか? 'type = 'checkbox' name = 'deleteform' value = '$ path/$ file'>' 'type = 'checkbox' name = 'deleteform []' value = '$ path/$ file'>'あなたのパラメータは配列になり、ループすることができます。 –

答えて

0

? あなたが特定のアイテムを削除が必要な場合:私はそれが何のSEUのCASOを働かないと信じて

$file_name = "fulano.jpg"; 
if ($handle = opendir('folder/')) { 
    while (false !== ($entry = readdir($handle))) { 
    if ($entry != "." && $entry != "..") { 
     if($entry == $file_name){ 
      @unlink('folder/'.$name); 
     } 
    } 
} 
    closedir($handle); 
} 

を、今配列を受け入れるように変更します。

+0

私はhtml形式でチェックしたすべての項目を削除する必要があります –

+0

私の返信内容を更新しました。 –

関連する問題