2012-06-08 6 views
0

이상한 문제가 생겼습니다.PHP 세션 변수가 설정되지 않았습니다.

내가 관리하는 자동차 쇼 웹 사이트의 등록 스크립트가있어서 이전 코드가 손상되지 않습니다. 이전에 효과가 있었지만 지금은 효과가 없다는 것을 알고 있습니다.

세션 변수를 올바르게 설정하고 있습니다. 전체 변수 배열을 세션에 저장하고 양식이 새 페이지로 다시로드되고 확인을 위해 등록 정보가 표시되면 양식이 제출되면 세션이 작동한다는 것을 알고 있습니다. 그러나 스크립트는 PayPal 페이지로 이동하여 사용자가 결제 프로세스를 수행합니다. 그런 다음 결제 프로세스가 완료되면 등록 정보가 MySQL 데이터베이스에 제출되는 사이트로 리디렉션됩니다.

그러나 사용자가 데이터가 제출 된 확인 페이지로 돌아 오면 세션 변수는 완전히 비어 있습니다. 나는 모든 변수를 echo'ed했고 거기에는 아무것도 없다.

어디에서 오류가 발생했는지 테스트하려면 SQL 서버에 정보가 덤프 된 확인 페이지로 직접 연결되는 양식을 작성한 후 링크를 ​​페이지에 붙여 넣으십시오. 링크를 링크하면 정보가 계속 표시됩니다. 그러나 동일한 URL을 가져 와서 주소 표시 줄 (링크를 사용하지 않음)에 붙여 넣으면 변수가 비어 있습니다.

그래서 링크를 클릭하고 페이지를 클릭 할 때 변수가 잘되는 이유는 모르지만 주소 표시 줄에 동일한 URL을지나 링크를 클릭하지 않으면 손실됩니다. 세션은 모든 페이지에서 시작되며 모두 동일한 도메인 이름에 있습니다.

어떤 도움이 필요합니까?! 내가 세션 변수를 설정하고 어떻게

===== 편집 ===== 테스트 코드

(대략적인 아이디어를 제공합니다). session_start(); 기능이 다른 페이지 사이의 연속성을이 사이트에있는 모든 페이지의 로딩에 호출됩니다 정보가 데이터베이스로 전송됩니다 페이팔 후 확인 페이지에서

$storedVars = array(1 => $name, $email, $state, $year, $make, $model, $generation, $color, $now, $paymentType); 
$_SESSION['registration']=$storedVars; 

, 다음 코드가 실행됩니다 (다시으로 session_start () 이미) 전화 :

$storedVars = $_SESSION['registration']; 
$name = $storedVars[1]; 
$email = $storedVars[2]; 
$state = $storedVars[3]; 
$year = $storedVars[4]; 
$make = $storedVars[5]; 
$model = $storedVars[6]; 
$generation = $storedVars[7]; 
$color = $storedVars[8]; 
$now = $storedVars[9]; 

제 10 어레이 변수 paymentType이이 시점에서 필요하지 않은 유일한 해당 변수 echo'ed되는 양식 제출 후 페이지)

사용 팔로우 한 다음 확인 페이지에서 Paypal의 단계를 거치거나 양식을 작성한 후 올바른 주소를 주소창에 붙여 넣으면 아무 것도 없습니다. HOWEVER .. 양식을 제출 한 후 이어지는 데이터 유효성 검사 페이지에서 링크를 누르면 변수가 그대로 유지됩니다.

+0

당신이 [최소한의 테스트 케이스]을 만들 수 (http://sscce.org) 즉 보여줍니다 발행물? –

+0

세션이 확인 페이지에서 '제거'된 후에도 예를 들어 계속 사용할 수 있습니다. 뒷 페이지? –

+0

URL을 붙여 넣으면 새로운 세션이 시작되는 것처럼 들립니다. 코드 예제없이보기 힘들다. –

답변

2

귀하의 마지막 댓글은 귀하의 세션이 http://yoursite.com/으로 설정되었고 PayPal로 보내는 귀하의 반송 URL이 http://www.yoursite.com/ (또는 그 반대)이라고 생각합니다. "www"는 실제로 기본 도메인의 하위 도메인이며 브라우저가 관련된 한 다른 호스트로 간주됩니다.

가 이

길고도 짧은 이야기, 페이팔로 토큰을 설정할 때 반환 URL에 대해 다음을 사용 :

$_SERVER["HTTP_HOST"] . "/Path/To/PaypalReturnPage.php" 
관련 문제