Heim Backend-Entwicklung PHP-Tutorial session失效,很奇怪的失效解决方案

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-&gt;use_sandbox = true;

$order_time=$_SESSION['order_time_org'];
$username=$_SESSION['user'];
echo "$order_time, $username";

//到这里位置以上,SESSION是可以用的 上面输出两个都能显示出来
//下面就显示不出来了!这是为什么?

try {
    $verified = $listener-&gt;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-&gt;close();
?&gt;

</whimwin>
Nach dem Login kopieren


------解决方案--------------------
先测试一下
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呢。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So legen Sie das Sitzungszeitlimit in der SpringBoot-Sitzung fest So legen Sie das Sitzungszeitlimit in der SpringBoot-Sitzung fest May 15, 2023 pm 02:37 PM

So legen Sie das Sitzungszeitlimit in der SpringBoot-Sitzung fest

So verwenden Sie die Module email, smtplib, poplib und imaplib zum Senden und Empfangen von E-Mails in Python So verwenden Sie die Module email, smtplib, poplib und imaplib zum Senden und Empfangen von E-Mails in Python May 16, 2023 pm 11:44 PM

So verwenden Sie die Module email, smtplib, poplib und imaplib zum Senden und Empfangen von E-Mails in Python

So beheben Sie Sitzungsfehler So beheben Sie Sitzungsfehler Oct 18, 2023 pm 05:19 PM

So beheben Sie Sitzungsfehler

Lösung für das domänenübergreifende Problem der PHP-Sitzung Lösung für das domänenübergreifende Problem der PHP-Sitzung Oct 12, 2023 pm 03:00 PM

Lösung für das domänenübergreifende Problem der PHP-Sitzung

Was ist die Standardablaufzeit von Session PHP? Was ist die Standardablaufzeit von Session PHP? Nov 01, 2022 am 09:14 AM

Was ist die Standardablaufzeit von Session PHP?

Was soll ich tun, wenn die PHP-Sitzung nach der Aktualisierung verschwindet? Was soll ich tun, wenn die PHP-Sitzung nach der Aktualisierung verschwindet? Jan 18, 2023 pm 01:39 PM

Was soll ich tun, wenn die PHP-Sitzung nach der Aktualisierung verschwindet?

So implementieren Sie die SMS-Anmeldung in der Redis-Anwendung für gemeinsam genutzte Sitzungen So implementieren Sie die SMS-Anmeldung in der Redis-Anwendung für gemeinsam genutzte Sitzungen Jun 03, 2023 pm 03:11 PM

So implementieren Sie die SMS-Anmeldung in der Redis-Anwendung für gemeinsam genutzte Sitzungen

So lesen und schreiben Sie Sitzungsdaten in mehreren Dateien mit PHP korrekt So lesen und schreiben Sie Sitzungsdaten in mehreren Dateien mit PHP korrekt Mar 23, 2023 am 11:12 AM

So lesen und schreiben Sie Sitzungsdaten in mehreren Dateien mit PHP korrekt

See all articles