会议不起作用? | PHP和jQuery

时间:2016-05-03 20:56:37

标签: php jquery session

目前我正在为登录系统做代码。登录系统将记住我的功能(它将在接下来的30天记住你)。如果用户选择yes以记住我的功能,服务器将创建cookie并启动会话。如果用户没有为记忆功能选择是,则服务器将仅启动会话用户。 现在,当我登录用户trys打开登录页面(prijava.php文件)时,我开始参与其中。我将此代码放入jQuery文件

$.ajax({
    type: "POST",
    url: "_hsync_scripts/_hsync_prijavljen.php",
    success: function(response)
    {
        if(Number(response) == 1) window.location.href = "index.php";           
    }       
}); 

它将在每个页面加载时运行。文件_hsync_prijavljen.php包含下一个代码

<?php

if(isset($_COOKIE['_hsync_prijavljen'])) echo '1';
else if(isset($_SESSION['_hsync_prijavljen'])) echo '1'; // MAYBE PROBLEM IS HERE?
else echo '0';
?>

登录代码

session_start();
if($_hsync_zapamti == 1) setcookie("_hsync_prijavljen", $_hsync_id, time() + 2592000, "/");
$_SESSION['_hsync_prijavljen'] = $_hsync_id; // MAYBE PROBLEM IS HERE?
echo '0';

如果登录用户试图打开登录页面,他将重定向到index.php - 那部分是Works。接下来没有工作的部分是 - 如果我在不记得我的功能的情况下登录,之后我输入(在URL栏中)链接到登录页面,服务器不会将我重定向到index.php。为什么?这是我使用PHP会话的时候,也许我不明白PHP会话的重点?我没有关闭标签,所以看台仍然必须有效吗?或不?谢谢!

1 个答案:

答案 0 :(得分:2)

您的代码似乎很好,但_hsync_prijavljen.php也需要session_start();,即:

<?php
session_start();
if(isset($_COOKIE['_hsync_prijavljen'])) echo '1';
else if(isset($_SESSION['_hsync_prijavljen'])) echo '1'; // MAYBE PROBLEM IS HERE?
else echo '0';
?>

确保您了解$_SESSION(存储在网络服务器上的信息)和$_COOKIE(存储在用户设备上)之间的区别。