2016-06-22 4 views
5

私は何かを達成しようとしています。 問題は、特定のユーザーがログに記録されているときに、セッション中にユーザーを記録し、彼がログに記録されていることです。PHPのJavascriptを制限していますか?

私に言う前に、これはベストプラクティスではありませんが、このページの目的は内部のみであり、内部でのみアクセスできるため、ハッキングされる可能性はありません。

とにかく、編集可能なフィールドがテーブルにあるのは、編集可能なのは管理者だけですが、それは残りの部分だけに表示する必要があるということです。

編集可能なテーブルを実現するために、私はいくつかのajaxとJQueryと共にdatatablesライブラリを使用しました。

私はよりログインしたユーザーが他に管理されていない場合に編集を制限する方法を考えることはできません:あなたはより良い方法か、理解しやすいを知っています

var logged = <?php echo $_SESSION['logged_user'];?>; 
if (logged=='admin') { 
    // action here 
} 

?どうもありがとうございました!

+1

よう

何かがあなたはそれが唯一の内部目的のためにあると言ったとしても、それはまだ恐ろしいです。あなたのF12を開き、あなたの間違いを見てください;) – GuyT

+2

'var logged = <?php echo $ _SESSION ['logged_user'];?>;' 'var logged = '<?php echo $ _SESSION [' logged_user '] ;? > '; 'まず第一に.. –

+0

これを達成するための多くの方法が、この編集可能なデータの抽出方法によって異なります。私はあなたがajaxの使用について言及しているのを見ます。あなたがJSON.Example {"Auth":{"Admin":true}、 "Inputs"を出力できるクエリ結果を出力する方法に応じて、ajaxを介してテーブルデータを要求している場合は、 "admin" {"InputName1": "Value1"、 "InputName2": "Value2"、 "InputName3": "Value3"、}}入力を使用してテーブルクエリの表示を構築し、authをチェックして編集可能なフォームを作成します。また、クライアントがテーブルデータを更新しようとしたときにセッションの検証をお勧めします。 – NewToJS

答えて

3

純粋なPHPでチェックの周りのテーブルを編集する関数/関数を持つことが1つの解決策であるため、 "通常の"ユーザーはロードする必要はなく、これを行うjavascriptを見ることさえできます。

<?php If(isAdmin) { ?> 
    Javascript here 
<?php } ?> 

これにより、通常のユーザーは要素を検査せずに、if文を削除してから同じことをすることができます。

+0

これは最善の解決策ではないかもしれないが、それは簡単で、私が必要とするものにぴったりだと分かっている。ありがとうございます! –

3

ユーザーがadminでない場合は、フィールドを読み取り専用にするか、入力ではなくラベルタグを使用します。
内部目的のみで、javascriptでこのフィールドを後で切り替えることができます。また、javascript変数をis_admin trueに設定してdocument.ready()の後に入力フィールドの属性をto readonly trueまたはfalse。

1

セキュリティトークンを使用してhtmlをURLパラメータとして呼び出します。

次に、このセキュリティトークンをajaxリクエストでサーバーに送り返して、それによってログに記録されたユーザーを取得する必要があります。この

www.example.com?231212sdsldkfjsl2131212lskjlkdsj 


var sec = location.search; 

$http.get('testuser.php?' + sec, function(data){ 
    user = data.user; 
}); 
関連する問題