2011-03-07 5 views
2

PHPとJavascriptに基づいて、ファイルブラウザ(あなたが好きな場合は非常にligthファイルマネージャー)に取り組んでいます。Ajaxファイルブラウザ。

私は私のフォルダをツリービューを構築しています:

<ul id="treeview"> 
    <li><a href="#">Folder 1</a></li> 
    <li><a href="#">Folder 2</a> 
     <ul> 
      <li><a href="#">Folder 2.1</a></li> 
      <li><a href="#">Folder 2.2</a></li> 
     </ul> 
    </li> 
    <li><a href="#">Folder 3</a></li> 
</ul> 

各リンクはフォルダを表しています。私がここからやりたいことは、フォルダのコンテンツをそれに乗った後に読み込むことです。

私はそれを行うには、このPHPコードを持っている:

public function getContent($path) 
{ 
    //fetch the content of $path directory 
} 

私は、これは、イベントを処理するコードをJSあります

$('#treeview a').live('click',function(e){ 
    e.preventDefault(); 
    var folder = //here : get the path 
    loadContentInPanel(folder); 
}); 

しかし、私はのパスを取得する方法がわかりません安全にクリックしてください。このような属性で直接追加する必要がありますか? :

<li><a href="root/folder2/folder2.1/"> Folder 2.1</a></li> 

理想的には、パスをエンドユーザーに表示することはできません(少なくとも明確には判読できません)。私はbase64_encode()とリンクを構築することを考えていたが、それは良い考えですか?

ご意見ありがとうございます。

答えて

1

あなたは既にツリービューのフォルダへのパスを渡していますが、実際の要素に追加するのに問題はありません。

<li><a href="root/folder2/folder2.1/"> Folder 2.1</a></li> 

<ul id="treeview">//root 
    <li><a href="#">Folder 1</a></li> 
    <li><a href="#">Folder 2</a> //folder2 

になります「のgetContent」機能で、すべてのセキュリティチェックを実行すると、あなたは大丈夫です。

+0

はい、あなたは正しい道についてです。樹木を与えるだけでなく、完全な道を与えることは良い解決策であるようです – grunk

1

単純な難読化が必要な場合(開発者は実際のパスをすぐに取得できます)、base64_encode()が最も簡単な方法です(パスが600-700文字を超えない場合)。

ところで、セキュリティは難読化に基づいているのではなく、あなたが嫉妬しているリソースへの確実なアクセスチェックに基づいているべきであることに注意してください。

関連する問題