前提・実現したいこと
PHPでセッションを取得しようとしています。
Ajaxの先でセッションが取得できない状況に陥りました。
ご指導ご鞭撻のほど、よろしくお願い申し上げます。
発生している問題・エラーメッセージ
Ajaxの先でセッションが取得できません。
エラーメッセージはありません。
該当のソースコード
まずセッションの登録と出力はできます。
↓「index.php」
PHP
1<?php 2session_start(); 3$_SESSION['user_ids'] = array('1','2'); 4var_dump( $_SESSION['user_ids'] ); // できます。 5?>
しかしAjax先の「fuga.php」でそれが取得できません。
↓「fuga.php」
PHP
1$user_ids = $_SESSION['user_ids']; // できません。
下記のようにして「// sessionの引き継ぎ」を行っているつもりですが、できません。
ほかに必要な手立てはございますでしょうか?
↓「ajax.js」
JS
1$.ajax({ 2 url: "fuga.php", 3 type: 'POST', 4 data: { 5 //session_value: session_value, // 後述の「試したこと」でこれが活きます。 6 }, 7 beforeSend: function(xhr) { 8 // sessionの引き継ぎ 9 xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')); 10 }, 11 success: function(result){ 12 console.log(result); 13 }, 14 error: function(){ 15 console.log( jqXHR, textStatus, errorThrown, arguments ); 16 }, 17});
試したこと
JSにセッションを出力してAjaxで送れば「fuga.php」で取得できます。
つまり「index.php」を下記の(改)のようにして、JSにセッションを出力し、「ajax.js」では上のコメントアウトしてある「//session_value: session_value」を送る。という流れならば、「fuga.php」で取得できるというわけです。
↓「index.php」(改)
PHP
1<?php 2session_start(); 3$_SESSION['user_ids'] = array('1','2'); 4?> 5 6<script> 7<!-- 8var session_value = <?php echo json_encode($_SESSION[['user_ids']); ?>; 9--> 10</script> 11
しかし、ユーザーIDというフロントで見せたくない値のため、このようにJSで「session_value」を表示したくありません。
なんとかして「fuga.php」で、セッション「user_ids」を取得できませんでしょうか?

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/24 01:18
2019/04/24 01:21
2019/04/24 01:24