2016-12-25 3 views
0

새 session id는 모든 session_start() 호출과 함께 세션 폴더에 만들어 지지만 다음 페이지에는로드되지 않습니다."session_start()"는 사용 가능한 하나를로드하는 대신 새 세션 ID를 생성합니다.

나는 그것을 확인하는 데 사용되는 코드 :

,

<?php 
session_start(); 

var_dump($_SESSION); 
echo boolStr(is_writable(session_save_path())) . " and "; 
echo boolStr(is_readable(session_save_path())) . "<br>"; 

if (!isset($_SESSION['counter'])){ 
    $_SESSION['counter']=0; 
} 

echo "Refreshed: ". $_SESSION['counter'] ." times.<br> 
$_SESSION['counter']++; 

<a href=".$_SERVER['PHP_SELF'].'?'.session_name().'='.session_id().">refresh!</a>"; 


function boolStr($val) 
    { 
     return $val ? 'true' : 'false'; 
    } 
?> 

카운터 (더 코드가없는 어떠한 공백이되기 전에이없는,이 상단에 바로 "으로 session_start()"를) 변수는 "$ _SESSION [ 'counter'] ++;" 새로 고침 된 페이지를로드 한 후 다시 0이되며 주소 표시 줄에서 세션 ID가 변경됩니다.

출력 :

D:\wamp64\www\sessions.php:4: 
array (size=0) 
    empty 

true and true 
Refreshed 0 times. 
refresh 

php.ini 파일 :

session.save_handler = files 
session.save_path ="D:/wamp64/tmp" 
session.use_strict_mode = 0 
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 = 1 
session.cookie_secure = 0 
session.serialize_handler = php 
session.gc_probability = 1 
session.gc_divisor = 1000 
session.gc_maxlifetime = 1440 
session.referer_check = 
session.entropy_length = 32 
session.entropy_file = /dev/urandom 
session.cache_limiter = nocache 
session.cache_expire = 180 
session.use_trans_sid = 0 
session.hash_function = sha256 
session.hash_bits_per_character = 5 

세션은 지난 한 달 동안 잘 작동했다,하지만 난 브라우저를 닫을 때 (나는 거의 결코 pc와 종료를 최대 절전 모드) , 문제가 나타났다. 파이어 폭스 대신 Chrome을 사용해 보았 기 때문에 동일한 문제가 발생했기 때문에 실제로 브라우저와의 연결은 표시되지 않습니다.

session_start()가 세션 쿠키를로드하려고 할 때 어떻게되는지 어떻게 알 수 있습니까? session_start()가 어떻게 작동 하는지를 볼 수 있었다면 어쩌면 무슨 일이 일어나는지 알 수있었습니다.

감사합니다.

+0

'error_reporting (E_ALL);을 수행 할 때 무엇을 반환합니까? – Kray

+0

내가 잘못했는지 알 수 없으므로 session_start() 아래에 한 번 배치하고 한 번 위에 놓으면 오류가 두 번 발생하지 않았습니다. – Ibos

+0

$ _SESSION [ 'counter'] ++를 echo 문 위로 이동하여 변수에 넣으십시오. 예를 들면 다음과 같습니다. $ session_counter = $ _SESSION [ 'counter'] ++; –

답변

0

아무런 결과가 나오지 않은 채로 하루를 지낸 후에 나는 XAMPP를 대신 설치하여 사용할 수있을 것이라고 생각하고 세션이 WAMP 서버에서 나오게되었습니다.