2010-03-21 6 views
2

일반적인 문제는 아니지만 난 혼란 스럽습니다. 세션 변수가 내 로컬 (로컬 호스트) 배포에서는 페이지를 통과하지만 내 (www) 호스트에서는 그렇지 않습니다. 나는 일반적인이 코드에 각 페이지의 파일이 포함되어 사용PHP 세션 변수가 페이지를 가로 지르지 않습니다.

$sessionDomain = "/"; 
@ini_set("session.cookie_path",$sessionDomain); 
$sessionName = "ccSID".md5('/store/'); 
session_name($sessionName); 
session_start(); 

내가 세션 ID 쿠키 (ccSIDxxxxx이 ...) 브라우저에서 동일한에서 페이지를 남아 있음을 확인을하지만, 세션 변수가되어 있지 않은 것 같습니다 다른 디렉토리에있는 페이지로 변경할 때 기다리십시오.

편집 : 내 세션 쿠키 파일은 한 경로 디렉토리에서 읽을 수있는 데이터를 가지지 만 다른 데이터는 읽을 수 없습니다. 좋은 디렉토리에 빈 php.ini 파일이 있음을 발견했습니다. 빈 디렉토리에 빈 php.ini 파일을 배치하면 세션 쿠키가 읽기 쉽지만 일반 브라우저 쿠키는 해당 디렉토리의 페이지에서 저장되지 않습니다. 세션 쿠키의 동작을 변경하는 디렉토리에서 (공백) php.ini 파일을 처리하는 방법은 무엇입니까?

+0

쿠키가 승인되어 이후 요청에서 전송되는지 여부를 확인 했습니까? – Gumbo

+0

동일한 디렉토리의 페이지를 요청하는 동안 (세션) 쿠키는 그대로 유지됩니다. 다른 디렉토리에서 요청하면 쿠키가 사라집니다. – mitch

+0

하지만 당신의 질문에 '나는 세션 ID 쿠키가 페이지 전체에서 동일하게 유지된다는 것을 확인했다. 이제 쿠키가 사라 졌다고 했지. 어쨌든'session_start();'만 남겨놓고이 모든 재미있는 것들을 제거해야합니다. 나는 당신이 당신의 위치를 ​​일할 것이라는 점을 확실하다. HTTP 인터체인지 로그는 쿠키 디버깅에도 도움이됩니다. –

답변

1

"/"는 도메인이 아닌 경로처럼 보입니다.
세션 설정 만 기본값으로두면 어떨까요?
세션 쿠키가 정상적으로 처리되면 session.save_path 내의 파일을 확인해야합니다.

+0

죄송합니다. 문제가 해결되지 않습니다. – mitch

+0

@mitch 브라우저가 쿠키 캐시를 지우고 다시 시도하십시오. –

+0

그렇게했습니다. 여전히 같은 문제. – mitch

1

쿠키를 한 곳 이상에서 저장하고 있다는 느낌이 들었습니다. 이름을 붙이기 때문에 이름이 같을 수는 있지만 완전히 다른 세션이됩니다.

실제 세션 파일에서 서버를 확인하십시오. 그들은 모두 그들이 있어야 할 곳에 있습니까? 그들이 속하지 않는 곳에 무리가 나타 납니까?

여기에 표시 한 것과 같지 않아도 경로가 절대 경로가 아닌 절대 경로로 설정되어있는 경우입니다.

또한, 아마도 당신은 당신의 ini_set()에서 shut 오퍼레이터 (@)를 벗어나서 무엇에 대해서 불평 할 수 있는지보아야 할 것입니까?

+0

이후로 session.save_path를 사용하여 세션 배열을 배치했고 그 파일을 관찰하고 있습니다. 한 페이지에서 변수를 저장할 때 괜찮아 보이지만, 다른 페이지에서 저장할 때 이상합니다 (쿠키가 인코딩 된 것처럼). 다시 한 번, 내 로컬에서이 방법으로 잘 작동합니다. – mitch

+0

세션 데이터가 예상대로 저장되고 있지만 예상 할 때 간단한 변수 ($ _SESSION [ 'test'] = 'test';)로 테스트 할 때 세션 데이터는 한 페이지에서는 이해할 수 없지만 다른 페이지에서는 명확하지 않습니다. 그것은 분명히 동일한 세션 이름과 장소에 저장되지만 다른 페이지가 아니라 페이지에서 왜곡됩니다. – mitch

+0

내가 할 (테스트 | S : 4 : "테스트") (. iFcXRQdc4KoZBgg2AMi4hKTzR380YphO8xCK4fK6IDPIRrbk7Nnnaq06FlbbH0YmBGzMbMy85TVGXPyDdDI5KMtq08PQMuK6ypGKKyYDowA) 내 로컬 서버에 문제가있는 페이지와 (잘 작동),하지만 난 얻을 내 호스트 서버에 동일한하려고 할 때. – mitch

관련 문제