使用Paypal在PHP中丢失SESSION变量

时间:2019-01-02 15:38:47

标签: php paypal session-variables

我有一个包含PHP文件的应用程序,可以用来参加我的摄影俱乐部参加的比赛。

如果我这样使用它的功能:

登录页面(将用户ID保存在SESSION变量中)
  菜单页面
  支付页面->进入贝宝->返回“支付成功”页面

“ Paysuccess”页面失败,因为SESSION变量现在为空 (会话ID相同,因此它不是新会话)

但是,如果我这样做的话:
  登录页面(将人员ID保存在SESSION变量中)
  菜单页面
  其他页面(在应用程序内)->处理数据页面
  菜单页面
  支付页面->进入贝宝->返回“支付成功”页面

由于SESSION变量仍然存在,Paysuccess页面现在可以工作了。

此系统已经使用了一段时间,但现在已经出现此问题。可能是巧合,但是我想最近安装Worpress(用于其他用途),这需要将我的站点移至托管系统上的新服务器,并将PHP从4.x升级到7.x。主持人还设置了使用https的内容: 巧合?一旦我适应了MySQL调用,其他一切似乎都可以正常工作。 如果似乎也很可疑,则该问题仅在我的应用程序跳转到Paypal并返回时才会出现。话虽如此,为什么在Paypal跳转之前运行其他功能会有所不同?

所有PHP页面在DOCTYPE第一行之后立即执行''。人员id变量在登录页面中设置,然后被其他页面引用。

最后一件事是,尽管我一直在弄乱它,但放入ECHO等来尝试对其进行调试,但有时似乎可行。我可能未如我应该的那么有条不紊,所以无法确切地说出何时。

代码……(不知道要发布多少mcuh,因为这会使问题变得很长。

** Login.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php session_start(); ?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="RO.css">
</head> 

<body>
((snip))
if ($logresult == "Bad") 
    $_SESSION['logok'] = 0;
    echo "Your log-in details were incorrect. Please try again.<br><br>(use the 'Back' button to get back to the login screen)";
    }
else
    {
    $_SESSION['logok'] = 1;
    $_SESSION['authid'] = $authid;
    header("Location: ro-menu.php");    
    }

?>
</div>

** payfee.php:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <?php session_start(); ?>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <link rel="stylesheet" type="text/css" href="RO.css">
    </head> 

    <body>
    <?php

    if ($_SESSION['logok'] <> 1)
        {
        echo "<h4>Rushden Open Photographic Exhibition.</h4><br>";
        die("Not logged in.");
        }
    $authid = $_SESSION['authid'];
    ?>  

((snip))

** paysuccess.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php session_start(); ?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="RO.css">
</head> 

<body>

<?php
function sendtheMail($rr, $mm)
    {
    $to = "";
    $subject = "Rushden Open exhibition";
    $headers = "From: Rushden Open <xxxxxxx@xxxxx.co.uk>\n";
    $headers .= "Bcc:" . $rr;
    mail($to, $subject, $mm, $headers);
    }
?>

<div id="wrapper">

<h2>Rushden Open Photographic Exhibition - 37th year, 2019</h2> 
<?php

$conn = new mysqli("localhost", "open", "xxxxxx", "Rushden_Open");
if ($conn->connect_error) 
    {
    die("MySQL connection failed: " . $conn->connect_error);
    }
$sql = "lock tables author WRITE";
if (!$conn->query($sql))
    die("Error locking tables : " .  $conn->error);

# get entrant record 
$sql = "Select * from author where Author_id = " . $authid;
**** - and the above line fails as $authid is null
((snip))

0 个答案:

没有答案