내 웹 사이트에서 사용자 정의 로그인을했고 로그인 한 사용자를 $ _SESSION var을 통해 관리합니다. 내 문제는 로그인 작업 후에 추가됩니다. 다음 페이지에서 로그인 정보를 제어하고 모든 것이 정확하면 연결된 사용자 ID를 $_SESSION['currentUser'] = serialize($successUser);
에 저장합니다.페이지를 바꿀 때 세션 변수가 손실됩니다.
하지만 지금은 다른 페이지로 이동하면, 나는 ...을 $ _SESSION var에 제대로 저장되지 않은 경우처럼 ... 더 이상 로그인하지 않은거야 내 문제의
일부는 내 서버 구성에 있었다 . php.ini 파일에서 session.save_path를 변경하여 문제를 해결했습니다.
그러나 지금 내 문제는 내 웹 응용 프로그램 중 하나에 있습니다. 그래서 어딘가에 코딩 오류가 있습니다. 누구든지 나를 찾을 수 있도록 도와 줄 수 있습니까?
모든 페이지로 시작 : 여기 내 코드입니다
<?php
include('includes.php');
//page header
include("header.php");?>
<header class="sheet">
<h1>About...</h1>
</header>
<p>Lorem Ipsum...
includes.php :
<?php //includes.php
session_start();
//includes classes
require_once 'classes/User.php';
require_once 'classes/Event.php';
require_once 'classes/Address.php';
....
//Globale vars
$currentUser = (isset($_SESSION['currentUser']))?unserialize($_SESSION['currentUser']):NULL;
//Includes services
require_once 'services/SrvCRUD.php';
require_once 'services/SrvCRUD_User.php';
...
require_once 'services/SrvFct_User.php';
require_once 'services/SrvFct_Address.php';
require_once 'services/SrvFct_Event.php';
...
//pages actions
include('page_actions.php');
header.php : 당신의 도움에 대한
<!DOCTYPE html>
<html>
<head>
<title>...</title></head><body>
...
감사합니다.
P.S : 인터넷에서 내 문제에 대해 많이 조사한 결과 이미 <?php session_start()...
앞에있는 공백과 같은 현재 오류를 확인했습니다. 이 문제는 여기에, 구성 문제가 될 것으로 보인다 내 PHP의 세션 부분으로 : 내 $에 _SESSION을 var_dump
경우 , 그것은 내 변수가 ... 다음 페이지에
EDIT 존재하지 않음을 보여줍니다. ini
[Session]
session.save_handler = files
session.save_path = /home/users/***complete-path-censored***/tmp
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path =/
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.entropy_file = /dev/urandom
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 1
session.hash_function = 0
session.hash_bits_per_character = 4
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
로그인해도 동일한 페이지가 새로 고침되면 어떻게됩니까? 폼 동작에서 자신을 리디렉션하고 세션을 설정 한 다음 var_dump()하여 설정되어 있는지 확인할 수 있습니까? – AdRock
php.ini의 [세션] 설정을 확인하십시오 ... 일반적으로 HTTP는 상태가 저장되지 않으므로 모든 새로운 요청과 함께 세션 ID를 전달해야합니다. PHP는 쿠키를 사용하거나 URL을 다시 쓰고 모든 링크에 GET 인수를 추가합니다 (두 변수의 기본값은 PHPSESSID입니다). 앱이 세션을 잃어 버리면이 두 가지 방법 모두 실패합니다. 귀하의 질문은 정확하게 대답하기 만하면됩니다. –
참고로 세션에 넣고있는 데이터를 왜 직렬화하고 있습니까? 이것은 단지 당신이 그것을 접근하기를 원할 때 그것을 unserialize하기위한 여분의 작업을 생성하고, 완전히 불필요합니다. – CBroe