Programming Tips/Web Programming
[PHP] AJAX로 요청한 PHP 페이지에 $_SESSION 사용하기
Unikys
2014. 5. 7. 10:00
* PHP로 RESTful API를 개발하다보면 가끔 AJAX(XMLHttpRequest)를 이용해서 호출하는 경우 로그인 정보를 유지하여 정보 검증을 해야하는 경우가 있는데, AJAX를 이용하는 경우에도 php의 $_SESSION 정보는 활용할 수 있다. 이것을 이용해서 페이지에서 로그인한 정보를 확인하고 검증이 안된 사용자에 대해서는 권한이 없음을 알려주면 권한 관리에 용이하다.
* 하지만 php 페이지에서 바로 $_SESSION을 사용하면 로그인 정보를 가져올 수가 없고, session_start();를 AJAX처리하는 PHP 페이지 상단에 넣어야 정상적으로 동작하게 될 것이다. 아래가 아주 간단한 예이므로, 응용하면 된다.
API 호출하는 페이지 예
<?php session_start(); $_SESSION["login"] = "true"; ?> <script> var xhr = new XMLHttpRequest(); xhr.open("./api.php"); xhr.send(); </script>
./api.php 페이지 소스 예
<?php session_start(); if($_SESSION["login"] == "true") { //로그인 정상 처리: Response 200 } else { // 권한 오류 처리: Response 403 die(); } ?>
* 잊지말고 session_start();를 꼭 넣어주고 처리하자!
끝.