Home Backend Development 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->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>
Copy after login


------解决方案--------------------
先测试一下
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呢。
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to use email, smtplib, poplib, imaplib modules to send and receive emails in Python How to use email, smtplib, poplib, imaplib modules to send and receive emails in Python May 16, 2023 pm 11:44 PM

The journey of an email is: MUA: MailUserAgent - Mail User Agent. (i.e. email software similar to Outlook) MTA: MailTransferAgent - Mail transfer agent, which is those email service providers, such as NetEase, Sina, etc. MDA: MailDeliveryAgent - Mail delivery agent. A server of the Email service provider sender->MUA->MTA->MTA->if

How to set session timeout in SpringBoot Session How to set session timeout in SpringBoot Session May 15, 2023 pm 02:37 PM

The problem was found in the springboot project production session-out timeout. The problem is described below: In the test environment, the session-out was configured by changing the application.yaml. After setting different times to verify that the session-out configuration took effect, the expiration time was directly set to 8 hours for release. Arrived in production environment. However, I received feedback from customers at noon that the project expiration time was set to be short. If no operation is performed for half an hour, the session will expire and require repeated logins. Solve the problem of handling the development environment: the springboot project has built-in Tomcat, so the session-out configured in application.yaml in the project is effective. Production environment: Production environment release is

How to solve session failure How to solve session failure Oct 18, 2023 pm 05:19 PM

Session failure is usually caused by the session lifetime expiration or server shutdown. The solutions: 1. Extend the lifetime of the session; 2. Use persistent storage; 3. Use cookies; 4. Update the session asynchronously; 5. Use session management middleware.

Solution to PHP Session cross-domain problem Solution to PHP Session cross-domain problem Oct 12, 2023 pm 03:00 PM

Solution to the cross-domain problem of PHPSession In the development of front-end and back-end separation, cross-domain requests have become the norm. When dealing with cross-domain issues, we usually involve the use and management of sessions. However, due to browser origin policy restrictions, sessions cannot be shared by default across domains. In order to solve this problem, we need to use some techniques and methods to achieve cross-domain sharing of sessions. 1. The most common use of cookies to share sessions across domains

What is the default expiration time of session php? What is the default expiration time of session php? Nov 01, 2022 am 09:14 AM

The default expiration time of session PHP is 1440 seconds, which is 24 minutes, which means that if the client does not refresh for more than 24 minutes, the current session will expire; if the user closes the browser, the session will end and the Session will no longer exist.

What should I do if the php session disappears after refreshing? What should I do if the php session disappears after refreshing? Jan 18, 2023 pm 01:39 PM

Solution to the problem that the php session disappears after refreshing: 1. Open the session through "session_start();"; 2. Write all public configurations in a php file; 3. The variable name cannot be the same as the array subscript; 4. In Just check the storage path of the session data in phpinfo and check whether the sessio in the file directory is saved successfully.

How to implement SMS login in Redis shared session application How to implement SMS login in Redis shared session application Jun 03, 2023 pm 03:11 PM

1. Implementing SMS login based on session 1.1 SMS login flow chart 1.2 Implementing sending SMS verification code Front-end request description: Description of request method POST request path /user/code request parameter phone (phone number) return value No back-end interface implementation: @Slf4j@ ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1. Verify mobile phone number if

How to correctly read and write Session data in multiple files with PHP How to correctly read and write Session data in multiple files with PHP Mar 23, 2023 am 11:12 AM

When you are using a PHP session (Session), sometimes you will find that the Session can be read normally in one file, but cannot be read in another file. This may confuse you since session data is supposed to be shared across the entire application. This article will explain how to correctly read and write PHP session data in multiple files.

See all articles