session失效,很奇怪的失效解决方案
Jun 13, 2016 pm 01:33 PM
email
order
quot
session
session失效,很奇怪的失效
这两天一直在写paypal, 现在就快把ipn.php整完了,但遇到一个问题让我很费解啊!
session在ipn.php里面只有一部分有效,看代码
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <?php //ipn.php全部代码 session_start(); include('ipnlistener.php'); include_once 'lib/functions.php'; ini_set('display_errors', 'Off'); $db = new Connection(); $connection = $db->connect(); $listener = new IpnListener(); $listener->use_sandbox = true; $order_time=$_SESSION['order_time_org']; $username=$_SESSION['user']; echo "$order_time, $username"; //到这里位置以上,SESSION是可以用的 上面输出两个都能显示出来 //下面就显示不出来了!这是为什么? try { $verified = $listener->processIpn(); } catch (Exception $e) { // fatal error trying to process IPN. exit(0); } if ($verified) { // IPN response was "VERIFIED" //send email form $invoice_id=$_POST['invoice']; $payment_status = $_POST['payment_status']; $receiver_email = $_POST['receiver_email']; $payer_email = $_POST['payer_email']; //$order_time = $_POST['custom']; //$whimwin_user=$_SESSION['user']; //这里的$_SESSION['user']显示不出来啊! //if($payment_status=="Completed") //{ $query="UPDATE CART SET payment_status='paid' WHERE username='$username' AND order_time='$order_time' AND invoice_id='$invoice_id'"; $result=queryMysql($query); if($result) { $to="xxxx@gmail.com";//payer_email //subject $subject="Whim Win paid successful!"; //from $header="from: test <whimwin>"; //message body $message="Dear Member, \n\n"; $message.="this is you invoice id $invoice_id \n"; $message.="$payment_status, $order_time, $payer_email, $receiver_email, $username"; //send email $sendmail=mail($to,$subject,$message,$header); } //} } else { // IPN response was "INVALID" } $db->close(); ?> </whimwin>
로그인 후 복사
------解决方案--------------------
先测试一下
try {
print_r($_SESSION);
$verified = $listener->processIpn();
print_r($_SESSION);
} catch (Exception $e) {
// fatal error trying to process IPN.
exit(0);
}
------解决方案--------------------
不要去管他,自己缓存一下
先调通了再说
try {
$mysession = $_SESSION;
$verified = $listener->processIpn();
$_SESSION = $my_session;
} catch (Exception $e) {
// fatal error trying to process IPN.
exit(0);
}
------解决方案--------------------
你这个ipn.php文件是支付成功的verify页面吧?我有看到你update支付状态的sql语句。
如果我猜的没错,那么你要搞清楚的一点是,客户支付的过程是走浏览器,所以cookie头可以续传,但是paypal请求你这个页面通告你支付结果这个流程,是通过palpay服务端完成的,比如我们php常用的curl。所以如果你不是显式的传给paypal当前的cookies,然后paypal请求的header头里带上这个cookies,怎么可能读到session呢。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

인기 기사
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

인기 기사
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7287
9


자바 튜토리얼
1622
14


Cakephp 튜토리얼
1342
46


라라벨 튜토리얼
1259
25


PHP 튜토리얼
1206
29



이메일, smtplib, poplib, imaplib 모듈을 사용하여 Python에서 이메일을 보내고 받는 방법

Redis 공유 세션 애플리케이션에서 SMS 로그인을 구현하는 방법

PHP를 사용하여 여러 파일의 세션 데이터를 올바르게 읽고 쓰는 방법
