아약스를 사용하는 시스템에서 간단한 로그를 만들려고하는데 문제는 $ _SESSION을 설정하지 않았기 때문입니다.
login.js :
$('#bt-login').click(function(){
var login = $('#login').serialize();
$.ajax({
type: "POST",
url: 'widgets/Login/loginFunction.php',
data: login,
cache: false,
success: function(msg){alert(msg)}
});
});
loginFunction.php :
<?php
include_once '../../dbConfig.php';
include_once '../../config.php';
session_start();
$usr = mysql_escape_string($_POST['username']);
$pass = mysql_escape_string($_POST['password']);
$remember = intval($_POST['rememberMe']);
$row = mysql_fetch_assoc(mysql_query("SELECT usr, id FROM members WHERE usr='".$usr."' AND pass='".md5($pass)."'"));
if($row['usr']){
$_SESSION['usr'] = $row['usr'];
$_SESSION['id'] = $row['id'];
$_SESSION['rememberMe'] = $remember;
setcookie('DirtPileGames',$remember);
}
?>
지금 어떤 이유로 loginFunction.php은 $ _SESSION 설정되지 않습니다. 새로 고침을하고 $ _SESSION이 비어 있습니다.
아무도 아이디어가 작동하지 않는 이유가 무엇입니까?
이것은 내가 지금까지 알아 낸 것입니다. session_name 함수를 사용하여 원하는 이름으로 쿠키를 만듭니다. 아약스가 실행되면 PHPSESSID라는 다른 쿠키가 생성됩니다. 그래서 나는 두 번째 쿠키를 만들지 않고 이름을 지정하는 방법을 알아 내야 만합니다. 오, 네, session_name을 포함시키지 않으면 스크립트가 제대로 작동합니다. – WAC0020
좋아, 알아 냈어. 메인 파일과 아약스 파일에 session_name과 session_set_cookie_params를 넣어야했습니다. 이게 맞는지는 모르겠지만 작동합니다. – WAC0020