English 中文(简体)
区分PHP中的两期
原标题:Distinguish between two sessions in PHP
  • 时间:2012-05-24 10:11:21
  •  标签:
  • php
  • session

我试图在本地主机上为网站之一编码,

<?php
session_start();
$_SESSION[ name ]=$row[ name ]
?>

输出是不错的。 但是当同一个本地主机上的另一个网页使用同一代码时, 当地主机/ Xyz 表示本地主机/ xyz 。 那么名称之间就有些模糊。 好像我需要区分 xyz 和 abc 的会话一样 。

所以我尝试了这个:

<?php
session_id(226);
session_name(veer);
session_start();
.
.
.//connection with database and all
.
$_SESSION[ name ]=$row[ name ];
echo($_SESSION[ name ]);
?>

当另一台机器登录在同一服务器上时, 我创建的会话被机器进入同一网页。

是否有解决办法,或者如何区分两届会议?

最佳回答

要简略地描述它... 当你使用相同的浏览器访问同一个网络服务器上的两个不同网站时, 您正在访问服务器的相同存储区 。

http://localhost/xyz http://localhost/abc 指的是同一网站的本地主机, 因此您不会通过 session_start() 开始另一场会议, 而是继续。 您也可以以 < a href=> https:// stackoverflow.com/ a/ 10735542- 608624 > 创建虚拟主机, 但为测试起见, 只要使用不同的浏览器即可 。

另外,通常您不能在不同机器上共享会话, 所以我认为这是您的逻辑错误。 或者尝试

session_start();
echo (session_id());

在页面的顶端, 并查看您是否要开始或恢复我认为不是的同一会话 。 我认为您的页面是在不同的会话中存储相同的数据, 而您错误地错误的会话是相同的会话 。

问题回答

在第二个文件(xyz)中使用 session_ regenerate_id (; 方法 ) 。

这个?

<?php
session_start();
if (!isset($_SESSION[ xyz ])) { $_SESSION[ xyz ] = array(); }
$_SESSION[ xyz ][ name ] = $row[ name ];
?>

sometimes instead of doing the above i just prefix my session keys example: $_SESSION[ xyz_name ]; I did that after i realized that my CPanel has been used some sessions of its own that caused a conflict to mine.

同一用户代理商对同一网络服务器的请求将共享相同的会话, 除非有取决于您准确服务器设置的明确配置 。

通常这个问题会避免, 因为“ 其他网页” 实际上会完全在另一个域名上, 所以会话 cookie (以及延伸会话数据) 将不会被共享 。 如果您想要在 localhost 上独立运行单独的应用程序, 您也应该这样做 : 在不同的内部域名上设置单独的虚拟主机 。

您也可以通过不直接使用 $_SESSION 来存储您的数据来纯粹在代码中解决问题,但可以使用基于某些不同因素的子密钥,如 $_SESSION[SCRIPT_NAME]

$sessionKey = "default";
if (strpos($_SESSION[ SCRIPT_NAME ], "dir1/")) {
    $sessionKey = "dir1";
}
else if (strpos($_SESSION[ SCRIPT_NAME ], "dir2/")) {
    $sessionKey = "dir2";
}

$_SESSION[$sessionKey][ mydata ] =  foo ;

“强”然而,上一个办法实在是不可思議的解决方案,我对此不建议。“/强”





相关问题
why the session in iis automatically log out?

I used iis6, and when i called a function Directory.delete(), the all the session relate this website will be logged out. and i debugged the website, i found no exception. any one have ideas on this ? ...

Check session from a view in CodeIgniter

What is the best way to check session from a view in CodeIgniter, it shows no way in their user guide, otherwise I will have to make two views on everything, which is kinda weird...still a newbie to ...

Can I get the size of a Session object in bytes in c#?

Is it possible to get the size(in bytes) of a Session object after storing something such as a datatable inside it? I want to get the size of a particular Session object, such as Session["table1"], ...

提供严格分类的出席会议物体

提供严格分类的与会机会的最佳方式是什么? 我正计划转而选择矩阵,这正在促使汇编者抱怨我的幻觉方案拟订方法......

PHP Session is not destroying after user logout

I m trying to create an authentication mechanism for my PHP Application and I m having difficulty destroying the session. I ve tried unsetting the authentication token which was previously set within ...

热门标签