У меня есть приложение, состоящее из файлов PHP, которое предназначено для участия в конкурсе, который запускает мой фотоклуб.
Если я использую его функции таким образом:
Страница входа (сохраняет идентификатор пользователя впеременная SESSION)
Страница меню
Страница оплаты комиссии -> переходит на Paypal -> возвращает на страницу 'paysuccess'
страница Paysuccess не работает, поскольку переменные SESSION теперь равны нулю (Идентификатор сеанса такой же, хотя, так что это не новый сеанс)
Однако, если я сделаю:
Страница входа (сохраняет идентификатор лица в переменной SESSION)
Страница меню
Некоторые другиестраница (в приложении) -> обработать страницу данных
Страница меню
Страница оплаты комиссии -> переходит на Paypal -> возвращается на страницу 'paysuccess'
страница Paysuccess теперь работает,поскольку переменные SESSION все еще находятся на своем месте.
Эта система уже некоторое время используется, но эта проблема появилась.Это может быть совпадением, но я недавно хотел установить Worpress (для другого использования), и для этого потребовалось перенести мой сайт на новый сервер в хостинговой системе и обновить PHP с 4.x до 7.x.Хостинг люди также настроили использовать https: совпадение?Все остальное работает нормально, как только я адаптировал вызовы MySQL.Если также кажется подозрительным, что проблема возникает только тогда, когда мое приложение переходит на Paypal и возвращается.Сказав это, зачем запускать какую-то другую функцию перед переходом на Paypal?Переменная person id задается на странице входа в систему, а затем на нее просто ссылаются другие страницы.
И последнее, что, пока я возился с ней, вставлял ECHO и т. д., чтобы попытаться отладить ее,иногда это похоже на работу.Возможно, я не был так методичен, как следовало бы, поэтому не могу точно сказать, когда это так.
Код ...... (не уверен, как много постить, так как вопрос очень длинный.
** 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))