세션(session) 유지 문제
본문
안녕하세요~ 다름이 아니라 푸쉬관련해서 그누보드와 Firebase로 개발을 진행했는데요
앱에서->웹으로 토큰값을 전달하고
웹에서->db로 토큰값을 저장하는 대략적인 구조입니다.
그런데 회원아이디별로 푸쉬설정을 주기위해서 토큰값을 세션으로 주엇는데..이게...여기서 문제가 생기네요
토큰값을 세션으로 넣고 유지해야하는데...유지가 안되네요...
registToken.php
앱 ->웹 으로 올때 토큰값을 db에 저장해주는 부분
<?php
include_once('../common.php');
//header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');
if(isset($_POST["Token"])){
$token = $_POST["Token"];
$_SESSION["dtkn"] = $token;
//alert("토큰저장까지 들어옴");
//데이터베이스에 접속해서 토큰을 저장
//error_reporting(E_ALL);
//ini_set("display_errors", 1);
include_once 'fcmConfig.php';
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$query = "INSERT INTO fcm_tokens(tokens) Values ('$token') ON DUPLICATE KEY UPDATE tokens = '$token'; ";
mysqli_query($conn, $query);
mysqli_close($conn);
}
//else{
// alert("토큰저장 실패");
// }
?>
위와같이 세션을 저장해서
아래에 login_check.php 에서 세션값을 처리해야하는데
세션이 유지가 안되는것 같네요...
login_check.php
에서 하단부분
//print_r($_SESSION);
if($_SESSION["dtkn"]) {
// $sql= " update {$g5['member_table']} set m_tokens = '{$_SESSION['dtkn']}' where mb_id = '{$mb['mb_id']}' ";
// sql_query($sql);
sql_query("INSERT INTO fcm_tokens(tokens, mb_id) Values ('{$_SESSION['dtkn']}', '{$mb['mb_id']}') ON DUPLICATE KEY UPDATE Token = '{$_SESSION['dtkn']}', mb_id = '{$mb['mb_id']}'");
// alert("세션저장 성공");
}
//else{
// alert("세션토큰저장 실패");
//}
아래는 제가 생각하고있는 로직 입니다.
앱(웹뷰)을 실행하면 하나는 index.php라는 메인이 켜지고 다른 함수에서는 registToken.php로 토큰을 전달해줍니다.
여기서 registToken.php은 세션을 생성하구요
그 세션은 login_check.php 에 참조가 되어야 합니다..
어떻게하면 정상적으로 세션이 넘어오고 db에 저장이 될까요?
답변 1
index.php 실행 이전에 registToken.php 를 먼저 실행시켜보는건 어떠신가요?
아니면 DB 에 insert 한 이후에 login_chk.php 부분에서 세션으로 조건을 주지마시고, DB 값으로 조건을 주시는건 어떠신가요?
답변을 작성하시기 전에 로그인 해주세요.