2011-12-16 11 views
0

私は基本的に、その上のディレクトリにあるファイルをリストするWebサイトを持っています。その隣に何らかの "x"リンクを作ろうとしています。そのファイルをサーバーから削除します。PHP foreachループでファイルを削除するには

foreach($logs as $log) 
    { 
     $noext = str_replace(".html", "", $log); 
     $rawlog = str_replace("../", "", $noext); 
     echo "<li><a href='#' onClick='javascript:loadLog(" . $rawlog . ");LogLoop();'>".$rawlog."</a></li>"; 
    } 

私はそれにアプローチする方法がわからないんだけど、私はおそらく何とか言ったファイルを削除するには、PHPの関数を呼び出すX用のonclickを使うだろうか?

ご協力いただきありがとうございます。

答えて

2

すでにAJAXコールのメカニズムがあるようです(多分loadLogのようになります)。だから、削除のために同じアプローチを続けるだろう:サーバーへのAJAX呼び出しを行う、クエリ変数としてファイル名を使用して、例えばURLに

http://my.server/delete.php?file=some.log 

あなたのサーバーサイドスクリプト、パラメータ、コールを読んでいましたunlinkファイルを削除します。

注意:おそらく、認証された担当者だけが実際にログを削除できることを確認する必要があります。それでも、上記のようなスキームであれば、ユーザーはCSRF攻撃に対して脆弱になる可能性があります(理論的には間違いありませんが、preventing csrf in php参照)。

0

ファイルを削除するには、unlink関数を使用します。あなたの変数$ rawlogを仮定すると、ファイルへのパスです:

unlink($rawlog); 
+0

$ logは実際に削除したいもの(完全なパス+ファイル名)ですが、ループ内のリンクからどのように呼び出すことができますか? – kogh

0

は、あなたが本当にクリックでファイルをunlink()しますか?

実際には、ファイルを削除したくないと判断し、再度ボックスをクリックするとします。

ファイルの削除をマークし、週に1回、cronまたはそれに類するものから定期的なクリーンアップを実行することをお勧めします。

+0

この場合、私は間違いなくユーザーがすぐに削除できるようにしたい – kogh