Php 将会话应用到正确的位置?
我不知道那个问题的措辞是否正确,但我措辞非常谨慎。基本上就是这样。我在本地机器上有两个目录Php 将会话应用到正确的位置?,php,session,Php,Session,我不知道那个问题的措辞是否正确,但我措辞非常谨慎。基本上就是这样。我在本地机器上有两个目录 /server/core/ 及 “核心”是处理所有数据处理的工具,这样做的目的是,如果我需要更新我的应用程序,那么我只需更新“核心”,所有包含和调用位于“核心”中的函数的“客户机”将自动更新。我相信这个词是“动态网站” 所以,基本上是这样的。。我目前使用非常基本的课程只是为了开始学习,但一旦我达到更高的水平,我肯定会改变周围的事情。目前在我的“核心”中,我有以下代码位于login.php if(canL
/server/core/
及
“核心”是处理所有数据处理的工具,这样做的目的是,如果我需要更新我的应用程序,那么我只需更新“核心”,所有包含和调用位于“核心”中的函数的“客户机”将自动更新。我相信这个词是“动态网站”
所以,基本上是这样的。。我目前使用非常基本的课程只是为了开始学习,但一旦我达到更高的水平,我肯定会改变周围的事情。目前在我的“核心”中,我有以下代码位于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);
}
}
<?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);
?>
以下代码位于/server/clients/
function createIndex($SQLConnection, $SQLConfig, $PDOConnection) {
global $action;
global $days;
if(!isset($_SESSION)){session_start();}
if(empty($_SESSION['email']))
{
createLogin($PDOConnection, $SQLConfig);
}
}
<?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文件,并使用echos将网站转发回来。请忽略多个SQL连接,因为它是用于测试的,将被删除
所以基本上,问题是,会话没有被保存,或者。。。相反,如果我不得不猜测,会话存储在/server/core/上,而不是/server/clients/
最终的结果是,用户总是被要求登录,而不是像在“仅客户端”版本中那样继续登录网站。((客户端版本只是一个静态网站,就像你通常看到的,动态方法是我自己尝试学习的东西,只是为了体验))
如何进行此操作,以便为登录人员存储会话。使用
会话\u设置\u cookie\u参数
将目录设置为父目录:
<?php
$params = session_get_cookie_params();
session_set_cookie_params($params['lifetime'], '/server');
您的
核心
和客户端
是否可以从同一域访问?例如www.example.com/clients
和www.example.com/core
或来自不同的域(如www.core.com
和www.clients.com
)?目前它们在我的本地计算机上,我的客户将在子域上,如client.website.com
,而我计划在core.website.com
或只是website.com/core
上进行核心访问。如果是为了登录,我希望父目录是服务器(core)还是客户机?您必须将其设置为包含这两个脚本的目录,这样在一个目录中启动的会话将在另一个目录中继续。嗯。。。那么,我到目前为止使用的方法是否会不正确?考虑到我让核心(服务器)将所有结果回显到客户端?也许我误解了你说的话。仍然是我第一周与php打交道。您进行了显示子域分区的编辑,但是。。如果用户使用演示帐户登录到demo.website.com
,然后转到example.website.com
,他们还会登录到其他子域吗?还是仅仅是他们要求的那个?每个客户端都有自己的数据库用于登录和轮询数据。是的,它们仍将登录。将.website.com
放入cookie意味着它适用于所有子域。将目录放入cookie意味着它适用于所有子目录。默认情况下,会话仅应用于设置它的子域和目录。您不能仅授予对某些子域的访问权限。这是一个等级制度。特定子域或子目录中的网页可以使其cookie和会话对祖先域和目录可见,然后对其所有后代可见。