2015-11-22 70 views
2

實際頁面啓動$.ajax (POST)請求和receiver.php需要修改$_SESSION。 但是它不起作用,我不知道$_SESSIONid是不同的,或者如果我需要在頁面上刷新註冊修改。

我試圖轉移會話ID和modifiy它:

<?php 
    if (count($_POST) > 1 && isset($_POST["s"])) 
    { 
     session_id($_POST["s"]); 
     session_start(); 
    } 
?> 

但是這個代碼是無效的......

$.ajax的要求很簡單:

var s = <?php echo "'" . session_id() . "'"; ?>; 

$.ajax({ 
    url: 'jquery/receiver.php', 
    type: 'POST', 
    dataType: 'html', 
    data: { 
     s: s, // session id, useless? 
     // data... 
    }, 
}).done(function (data) { 
    // operations ... 
} 

receiver.php太;

<?php 
    if (count($_POST) > 1 && isset($_POST["s"])) 
    { 
     session_id($_POST["s"]); 
     session_start(); 
    } 

    $_SESSION['longarray']['key'] = 'value'; 
?> 

最後,它是可以修改$_SESSION$.ajax (POST)?或者,也許我只有一個問題,因爲我的$_SESSIONarray

回答

1

好吧,我嘗試了以下 testp1.php

<?PHP 
     session_start(); 
    ?> 
    <script type="text/javascript" src="../../common/jquery/jquery-1.10.2.min.js"></script> 
    <script> 
    $(document).ready(function() { 
     var s = '<?php echo session_id(); ?>'; 

     $.ajax({ 
      url: 'receiver.php', 
      type: 'POST', 
      data: { 
       s: s, // session id, useless? 
       // data... 
      }, 
      success: function(data){ console.log(data); } 
     }) 
    }) 
    </script> 
    <body> 
    <?PHP 
     echo $_SESSION['longarray']['key']; 
    ?> 
    </body> 

Ajax調用receiver.php

<?php 
    if (count($_POST) >= 1 && isset($_POST["s"])) 
    { 
     session_id($_POST["s"]); 
     session_start(); 
     $_SESSION['longarray']['key'] = 'mix'; 
    } 
    else 
     echo "ERROR";; 
?> 

在testp1.php身體會表現出mix

+0

不是真的...因爲'$ _SESSION id'可以是'bba31afe537857688b692fa9bb8df746',所以是一個字符串。 – Rodrigue

+0

抱歉yup在發佈後意識到這個錯誤! – rakesh219

+0

謝謝你的時間!好吧,也許我的錯誤發生是因爲我在$ _SESSION中使用'array' .. – Rodrigue

0

我發現我的錯誤與rakesh219的幫助!

在我的代碼,我介紹愚蠢線,如:

if (! isset($_SESSION['akey'], $_SESSION['akey']['anotherkey']) { 
    $_SESSION['akey'] = new array(); 
    $_SESSION['akey']['anotherkey'] = new array(); 
} 

我已刪除了它,它是固定的!