所以我在混合应用中使用AJAX
来验证用户并启动 php会话。
该应用包含公开部分和用户帐户部分。我希望当有人登录时,他们可以转到公共部分并返回用户部分而不会被注销。
所以我写了一个AJAX request
,当用户点击用户部分图标来检查会话时会触发该<?php
require("session.php");
header('Access-Control-Allow-Origin: *');
if($_SERVER['REQUEST_METHOD'] == "POST")
{
require("dbconnect.php");
$inv = sanity($_POST['inv']);
$acc = sanity($_POST['acc']);
$pass = sanity($_POST['pass']);
$query = "SELECT loginid FROM login WHERE institution_id = '$inv' AND username = $acc AND password = '$pass'";
$result = mysqli_query($db_conn, $query);
if(mysqli_num_rows($result) > 0)
{
$row = mysqli_fetch_assoc($result);
$_SESION['id'] = $row['loginid'];
echo "1";
}
else
echo "0";
}
function sanity($data)
{
$var = htmlspecialchars($data);
$var = trim($var);
return $var;
}
?>
。如果有,那么js必须加载用户主页。如果没有,则js必须加载登录页面。
但是,当用户登录并尝试返回用户主页时,会话检查脚本会说服务器说没有设置会话变量。下面是代码....首先登录然后是会话检查代码。
的login.php
<?php
require("session.php");
header('Access-Control-Allow-Origin: *');
if($_SERVER['REQUEST_METHOD'] == "GET")
{
if(isset($_SESSION['id']))
echo "1";
else
echo "0";
}
?>
confirm.php
@Id
虽然登录脚本返回1
,但确认脚本返回零请注意session.php文件确实存在