2015-09-18 135 views
-2

在頭(header.phtml)我開始會話:無法獲取會話值

<?php 
if (session_status() == PHP_SESSION_NONE) 
    session_start(); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
... 

現在,在其他頁面我想設置一個會話值:

<script type="text/javascript"> 

    $(document).ready(function() { 

     $("#add_reservS").on("click", function(e) { 
      <?php 
      $_SESSION['nb_ajout_client'] = 0; 
      ?> 
     }); 
    ... 

然後我增加此在其他網頁會話值:

public function ajouterExecAction($src = '', $pk_src = ''){ 
     $client = new Client(); 
     $client->ajouter($_POST); 
     if ($src == '') 
      $this->response->redirect('ReferentielClient'); 
     else { 
      $_SESSION['nb_ajout_client']++; 
      ... 
     } 
     ... 
} 

現在另一頁我想​​這個會議裏面的值:

<script type="text/javascript"> 

    $(document).ready(function() { 
     $("#btn_retour").on("click", function() { 
      var back = "<?php echo $previous; ?>"; 
      if (back == "list_reserv") 
       window.history.back(); 
      else { 
       var nb_back = "<?php echo $_SESSION['nb_ajout_client']; ?>"; 
       alert("session nb ajout client = "+nb_back); // nb_back is blank ! 
      } 
     }); 

    }); 

</script> 

該警報顯示空白值!那麼我的方法有什麼問題?

+0

你有session_start(); – swidmann

+0

不,只是在標題頁:) – pheromix

+0

請記住,session_start()必須是文檔中的第一件事 – DTH

回答

1

您必須以session_start();開始每個文檔。雖然不再需要將它作爲第一行,但在對文件中的會話進行任何操作之前,它必須存在。

通常從包含在每個需要會話的頁面的公共包含文件開始會話。因此你只需要寫一次。

+1

你確定這個**是**的核心問題嗎? –

+0

如果會話變量不能被訪問,那麼它肯定是核心問題之一,如果不是中心問題,需要在更多可測試之前解決。 –