如何从不同的链接(本地和服务器)自定义cookie路径

时间:2019-03-25 09:40:21

标签: php codeigniter url cookies

我在设置正确的Cookie路径时遇到了一些麻烦。我想实现什么?

  1. 我有一个在我的本地服务器上运行的项目,该项目的路径为http://localhost/project_folder/Controller/function

  2. 我可以使用提到的相对路径/project_folder/Controller/function设置Cookie路径,并且有效

  3. 但是当项目在另一台服务器上运行时,其结构有些不同,例如:http://localhost/project部分被http://www.example.com/Controller取代,那么麻烦就开始了

我正在使用CodeIgniter框架。

要实现我已尝试使用CodeIgniter提供的base_url()函数的功能,如果我更改了配置中的站点路径,则它可以在第二台服务器上运行,但不能在本地服务器上运行,反之亦然。

在这种情况下,我应该如何正确处理Cookie路径?


已编辑

这是一个简单的Cookie集(我在JavaScript中使用了自定义Cookie函数,并且正在通过JavaScript设置Cookie):

createCookie('filter_products', params, '1', '<?php echo base_url('Controller/function'); ?>');

问题是base_url()函数返回下面的路径,就像我之前说的那样:

http://localhost/project_folder/Controller/function

但是在服务器上,localhost/project_folder/部分被域名替换了,那么如何动态创建Cookie路径?

1 个答案:

答案 0 :(得分:0)

我想到的第一件事是,应尽可能避免通过JavaScript设置Cookies,而应使用CodeIgniter built-in helpernative PHP functions

对您的问题:

要动态确定您所使用的服务器,可以使用PHP super-global curl -k -X POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token -d "grant_type=client_credentials&client_id=APP_ID&client_secret=APP_PASSWORD&scope=https%3A%2F%2Fapi.botframework.com%2F.default" 值,该值可从代码中的任何位置访问。 $_SERVER字段包含主机的实际名称,因此您可以使用以下内容:

SERVER_NAME