2016-08-16 6 views
0
$('.folder').on('contextmenu', function(ev){ 
    ev.preventDefault(); 
    var a = $(this).attr('data-id'); 
    var b = $(this).text(); 
    $('.marked').removeClass('marked'); 
    var c = $('#path').html(); 
    var d = '<span class="spant" data-id=' + a + '>' + b + '</span>'; 
    var e = c + d; 
    $.ajax({ 
     url: 'params.php', 
     type: 'post', 
     data: { 
      'path': e, 
      'par': a 
      }, 
     success: function() { 
      location.reload(); 
     } 
    }); 

}); 

params.php

session_start(); 
if(isset($_POST['path'])) { 
    $_SESSION['path'] = $_POST['path']; 
} 
else{ 
    $_SESSION['path'] = '<span class="spant" data-id=0>HOME</span>'; 
} 

if(isset($_POST['par'])) { 
    $_SESSION['par'] = $_POST['par']; 
} 
else{ 
    $_SESSION['par'] = 0; 
} 

admin.php

<?php 
include ("params.php"); 
echo $_SESSION['path']; 
echo $_SESSION['par']; 
?> 

結果は、古い値です。
javascriptコードで新しい値を設定するにはどうすればよいですか?

+0

"$ _SESSION ['path'] = $ _POST ['path']"の可能性のあるパストラバーサル脆弱性を調べてください。 http://stackoverflow.com/questions/4205141/preventing-directory-traversal-in-php-but-allowing-paths/4205278#4205278 – swordsecurity

答えて

1

あなたが要求、使用中にミスをした:そう不思議はポストVARの設定していないされていない:)これはそれを修正します

$('.folder').on('contextmenu', function(ev){ 
    ev.preventDefault(); 
    var a = $(this).attr('data-id'); 
    var b = $(this).text(); 
    $('.marked').removeClass('marked'); 
    var c = $('#path').html(); 
    var d = '<span class="spant" data-id=' + a + '>' + b + '</span>'; 
    var e = c + d; 
    $.ajax({ 
     url: 'params.php', 
     method: 'POST', 
     data: { 
      'path': e, 
      'par': a 
      }, 
     success: function() { 
      location.reload(); 
     } 
    }); 

}); 

ホープmethod: "post"代わりのtype: "post";)

乾杯!

0

params.phpを含めると、2つのifブロックの値をelseの状態に戻します。

+0

私はadmin.phpにajaxコードを指定して、 ''もし '' params.php'から 'admin.php'へのコード - 同じ結果です。 – bonaca

+0

$ _POSTを記録してその内容を確認しましたか?おそらくadmin.php(params.phpの代わりに)のsession_start()を直接呼び出して、それがそのコードでないことを確認してください。 admin.phpが$ _POST値なしで呼び出されると、それはあなたの 'else'値に戻ります。 – Colin

関連する問題