在我最初的php5代码中,一旦用户打开索引页,就会有一个ajax调用来检查是否有
$_SESSION['user']
存储。如果有会话,将显示用户。否则页面将重定向到登录页面。一旦我升级到php 7,它就停止工作了。
$.ajax({
type: 'POST',
url: "php/checksession.php",
})
.done(function(response) {
console.log(response);
var code = response[0].code;
/ if no loging session is stored, redirect back to loging page
if (code == 0) {
window.location.href = "login";
/ Session is found, update balance
} else {
$('body').show();
/ Do other stuff
}
}
Title Goes HerePageContent
这是php7密码。
header('Content-type: application/json');
require 'connection.php';
// Get Access to DB
// if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (isset($_POST))
{
ob_start();
session_start();
if (isset($_SESSION['user']))
{
$responseArray = array(
'code' => '1',
'type' => 'good',
'message' => 'found'
);
}
else
{
$responseArray = array(
'code' => '0',
'type' => 'bad',
'message' => 'no session'
);
}
}
else
{
$responseArray = array(
'code' => '0',
'type' => 'bad',
'message' => 'no POST'
);
}
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
$Arrays = [];
array_push($Arrays, $responseArray);
$encoded = json_encode($Arrays);
header('Content-Type: application/json');
echo $encoded;
}
else
{
echo $responseArray['message'];
} // else just display the message
?>
$_POST
为空,并且不会将Json数据发送回浏览器,因为不满足以下语句:
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')