2012-08-04 2 views
1

쿠키에 문제가 있습니다. 리디렉션시 쿠키 삭제 중

은 기본적으로 내가 쿠키 그래서 등 사용자의 세션 ID를 저장하기 위해 노력하고있어 : 이것은 내 사이트에 잘 작동

setcookie("CheckoutSessionID",session_id(),time()+3600); 

, 쿠키가 올바른 값을 가지고 충분히 긴 유효합니다. 그러나 사용자가 지불을 확인할 수 있도록 내 사이트가 PayPal로 리디렉션됩니다. 그런 다음 사용자는 다시 내 사이트로 리디렉션됩니다. 사용자가 내 사이트로 리디렉션되어 모든 쿠키 변수가 사라진 경우입니다.

마찬가지로, print_r($_COOKIE), var_dump($_COOKIE) 등은 값이 없습니다. PayPal을 오가는 직후에만 발생합니다.

왜 이런 일이 발생하는지 알고 싶습니다.

미리 도움 주셔서 감사합니다.

+0

무엇이'session_id()'반환 무엇입니까? –

+0

그리고 에코 할 때'echo $ _COOKIE [ "CheckoutSessionId"]' –

+0

session_id()가 정확한 세션 ID를 반환하고 모든 내 페이지에서 $ _COOKIE [ "CheckoutSessionID"]를 출력 할 수 있습니다. 나는 쿠키를 설정했다. 그러나 사용자가 PayPal에서 리디렉션되는 즉시 모든 쿠키가 사라집니다. –

답변

4

좋아 : 나는 페이팔에 다시 갔을 때 PHP의 세션이 삭제되지 않았기 때문에

PHP sessions and session_start()

는 기본적으로 나는 문제가 있었다. 그러나, 나는 이것이 전체 세션이 아니라 세션 COOKIE에 의해 실제로 파기 된 것이라고 생각합니다.

는 또한 여기에이 주제를 발견 : 사람에 의해 주어진 Do PHP sessions get lost when directing to a payment gateway?

대답 대신 쿠키 나 세션을 사용하는, 다시 데이터를 전송하는 반환 URL에 GET 요청을 사용하는 것이 좋습니다.

: 내가 처음에 쿠키를 사용했다

전체 이유는 그래서 기본적으로 난 그냥 이런 내 반환 URL 뭔가를했습니다, 세션이 제대로 작동되지 않은 한, 사용자의 세션 ID를 저장했다

mydomain.co.uk/mypage.php?SessionID=[ 세션 ID가 여기에옵니다.] 그런 다음 세션 ID를 얻은 다음 세션 ID를 설정합니다.

정렬 기준 : 지금은 ... 쿠키/세션이 제대로 작동하지 않아 다른 벽돌 벽에 부딪치게 될 것입니다.

도움을 주신 모든 분들께 감사드립니다.

+0

+1, 링크에 감사드립니다. –

2

실제로 무엇이 일어나고 있는지 (쿠키가 비어 있음) 논리적으로 옳습니다. 페이지/요청을 제출하면 브라우저는 cookie 변수에 cookie을 찾을 수 있도록 요청시 클라이언트 컴퓨터에서 cookie을 전송합니다.

그러나 사용자를 다른 외부 페이지/사이트로 리디렉션 한 다음 다시 페이지로 돌아 오면 cookiecookie 변수가 표시되지 않아야합니다 (사용자의 경우) 사용자가 귀하의 사이트로 돌아올 때 paypalpaypal은 요청시 cookie을 제출하지 않습니다.

이 경우 사용자를 paypal으로 리디렉션하기 전에 데이터베이스에 데이터를 저장할 수 있으며 사용자가 사이트로 돌아 오면 데이터베이스에서 해당 데이터를 검색 할 수 있습니다. 내가 아주 깊이 파고 광산의 이전 질문과 관련이 있음을 실현했습니다