[php+jQuery]ajaxでセッションを扱う方法

普通に使えるんだけどね。

普通に使える

なんかこう、普通にやる。

$(function(){
    data01 = $('input.***').val();
    data02 = $('input.***').val();
    $.post({
        url: 'ajax.php',
        data:{
            'data01' : data01,
            'data02' : data02
        },
        dataType: 'json',
    }).done(function(data){
        alert('完了');
    }).fail(function(XMLHttpRequest, textStatus, errorThrown){
        console.log(errorThrown);
    })
})

で、phpの方。

<?php
header("Content-type: application/json; charset=UTF-8");
session_start();
$session_id = $_SESSION['id'];
︙

「session_start();」を宣言しておけば、普通に$_SESSION[]で拾ってこれる。

phpで作ったセッションはjsで拾えないくさい。だからまあ、普通にこの路線でやるのが良いんでしょうね。CORSとかの、セキュリティガッチガチにしてあるならおまじないを足さなきゃいけない系のあれですかね。

なんでこの記事を書いたかという話

あっちこっちでセッションからデータを拾いたくない、極力機会を減らしたいという気持ちがあって。

だから、ajaxを書いてるjsでセッション情報を宣言できたら良かったんだけど、仕様的に見当違いな話らしくて。

じゃあjs内にphpでセッションを書き出すかといえばそれはソースコード上で丸裸になるからセキュリティ的にダメだろって感じの話なわけで。

結局ajax用のファイル内でセッションを取得するのが、一周回って採用という。

まあでも、jsからアクセスしてるわけだけどブラウザ上でajax用のphpを表示することもなくセッションって扱えるんですねっていう、基礎を知らない身からしてちょっと驚きな体験だった。

そんな感じで。

コメント

タイトルとURLをコピーしました