将会话应用于正确的位置?

时间:2014-05-29 08:33:23

标签: php session

我不知道我是否正确地提出了这个问题,但我措辞得非常谨慎。所以,基本上就是这样。我的本地机器上有两个目录。

/server/core/

/server/clients/

"核心"是处理所有数据处理的,这样做是为了如果我需要更新我的应用程序,那么我只需要更新"核心"以及所有"客户"包含和调用功能位于" 核心"将自动更新。我相信这个术语是一个动态网站"。

所以,基本上就是这里的事情......我现在只是开始学习使用非常基本的课程,但是一旦我开始学习,我肯定会改变一些事情。水平。目前在我的核心"我在 login.php

中有以下代码
if(canLogin) {
    if(!isset($_SESSION)){session_start();};
    $_SESSION['email'] = $email;
    header('Location: index.php');
}

这将加载' index.php'它位于" 客户端"目录。这就是我如何做到这一点。

以下代码位于/ server / core /

function createIndex($SQLConnection, $SQLConfig, $PDOConnection) {
    global $action;
    global $days;
    if(!isset($_SESSION)){session_start();} 
    if(empty($_SESSION['email'])) 
    {
        createLogin($PDOConnection, $SQLConfig);
    }
}

以下代码位于/ server / clients /

<?php
    $Configuration = include_once 'inc/Configuration.php';
    include_once 'inc/Connection.php';
    include_once '/opt/lampp/htdocs/eDashboard2/core/index.php';
    createIndex($NormalConnection, $Configuration, $PDOConnection);
?>

在核心上生成Index.php文件,并使用回声中继网站。请忽略多个用于测试的SQL连接,并将其删除。

所以基本上,问题是,会话没有被保存,或者......而是,如果我不得不猜测会话存储在 / server / core / 而不是 / server / clients /

最终结果是始终要求用户登录,而不是像他们在“仅客户端”中那样继续登录网站。这个版本。 ((客户端版本只是一个静态的网站,就像你通常会看到的那样,动态的方法是我自己尝试学习的经验))

如何进行此操作以便为登录的人存储会话。

1 个答案:

答案 0 :(得分:1)

使用session_set_cookie_params将目录设置为父目录:

<?php
$params = session_get_cookie_params();
session_set_cookie_params($params['lifetime'], '/server');

如果您的域的子域之间也必须存在会话,则需要一个额外的参数:

session_set_cookie_params($params['lifetime'], '/server', '.website.com');