2014-01-15 1 views
0

결제 게이트웨이에서 응답을 받고 선택한 결과를 결과 페이지 "approved.php"에 표시하려고합니다. 이 코드에서 "approved.php"변수를 전달해야합니다. 세션 또는 POST를 사용하여 코드를 작성하는 방법에 대한 제안 사항은 무엇입니까?세션 또는 게시를 사용하여 PHP 변수를 전달하십시오.

 if ($_POST["check"] != "1") 
      {}//do nothing 
     if($response_array[3]=="This transaction has been approved.") 
      { 
     session_start(); 
     $_SESSION[($response_array[7])] = $trans_id; 
     echo '<script language="Javascript">'; 
     echo 'window.location="/approved.php"'; 
     echo '</script>'; 
      } 
     else 
      { 
     echo '<script language="Javascript">'; 
     echo 'window.location="/declined.html'; 
     echo '</script>'; 
      } 

그런 approved.php

session_start(); 
$trans_id = $_SESSION['trans_id']; 
echo $trans_id; 

에이 작동하지 않습니다. approved.php에 세션이 이미 시작되었고, 변수가 전달되지 않습니다. 어떤 도움을 주셔서 감사합니다.

+0

라인 6 : $ _SESSION 변수 이름을 대괄호로 묶어서는 안됩니다. – Junior

+0

왜 자바 스크립트인가? –

+0

@OleKristianAanensen 왜 안 되니? 꼭 필요한 것은 아니지만 아무런 상처를주지는 않습니다. – Barmar

답변

1

$ response_array 배열의 모양을 모르지만 8 번째 요소가 "trans_id"문자열이 아닌 경우 문제가 발생합니다. 어쩌면 당신은 원 :

$_SESSION['trans_id'] = $trans_id; 

또는

$_SESSION['trans_id'] = $response_array[7]; 
0

을 과제는 다음과 같아야합니다 귀하의 질문에 따르면 : 나는 당신의 trans_id를 저장하는 POST을 사용하지만

$_SESSION['trans_id'] = $response_array[7]; 

은 단지 인 경우 필요한 경우 accept.php

+0

'$ _POST'가 지속되지 않습니다 리디렉션을 통해 –

+0

어떻게하면 POST로 할 수 있습니까? –

+0

샘이 맞습니다! 나는 코드를 작성한 것처럼 응답하고 리다이렉션을 사용하지 않으므로 $ _SESSION이 붙어 있습니다. – BKCOHEN

관련 문제