关于PHP会话

时间:2012-04-16 12:37:13

标签: php session

我有一个文件,其中我有这段代码

 session_start();
 session_register("name");
 $name = "test";

当我看到Chrome中的cookie时,它说它位于根文件夹中。

我的问题是这个会话在我的本地主机的xampp上保存在哪里以及我的会话在go daddy共享主机中保存的位置。

如果我是session_start(); $ _SESSION ['id'] =“有些价值”; ,我可以在所有页面中使用这个值,这就是我在阅读会话时的立场,纠正我,如果我错了。

我在共享主机中使用了这个,但是当我在另一个页面中调用会话变量时,它是空的,我不知道我的主机是否具有会话保存写入权限或者它可能是空的原因。

6 个答案:

答案 0 :(得分:1)

会话保存有2种设置:

  1. 在共享内存中。
  2. 在档案中。
  3. 如果是文件,您可以访问会话数据,而在内存情况下则不能访问。

    访问会话数据使用此函数session_save_path();

    获取文件夹路径

    注意: - 主机保护这些类型的文件夹,使其无法直接访问

    要检查会话设置是否在文件夹或内存中,还要检查phpinfo();

    如果选择了文件您可以使用相同的函数显式更改路径session_save_path();请检查:Check Here

答案 1 :(得分:0)

会话存储在服务器上,但会话ID作为长随机ID存储在用户计算机上。用户无法编辑会话,但他们可能会窃取会话ID并在未经授权的帐户上使用它。

您可以在php.ini中将register_globals设置为1。强烈建议您将其关闭,因为它可以被恶意使用,但这可以解释为什么设置$ name也可以设置$ _SESSION ['name']。它基本上允许从那一点设置所有变量。

答案 2 :(得分:0)

您需要将新值保存为

$_SESSION['name'] = "test";

$_SESSION['name']不等于$name

因此,$name = "test";

中不会保存$_SESSION['name']的保存值

你必须调用session_start();在每个页面上检索从一个页面到所需页面的传播中保存的会话。或者在php.ini文件中将其设置为/ 1(不推荐)

$_SESSION变量存储的位置由PHP的“session.save-path”配置决定。通常这是Linux / Unix系统上的“/tmp”。如果不是100%确定,请使用phpinfo()函数查看您的特定设置,方法是在您的域的DocumentRoot中创建包含此内容的文件:

<? phpinfo() ?>

查看以下链接了解更多详情

session.save_path

答案 3 :(得分:0)

会话作为名为1234的文件保存在服务器中。这是一个文本文件。它保存在可由php.ini配置的路径中。

客户端保存cookie。 cookie的内容等于sessione文件1234的名称。每个请求的borwser发送cookie内容,以便服务器读取cookie的内容并检查是否存在相应的会话。对于使用会话的问题...为我们提供了更多代码!

答案 4 :(得分:0)

要使用会话,您需要执行以下操作:

session_start(); 

然后你可以这样做:

$_SESSION['id'] ="some value";

并使用它:

$id = $_SESSION['id'];

session_register是一个已弃用的函数,您不应该使用它。无论如何,你是以错误的顺序使用它(你应该用值做的最后一件事是注册它,你注册了一个空值$name变量)。

答案 5 :(得分:0)

使用Go Daddy 4GH主持会话将默认保存到与/ html目录处于同一级别的/ tmp目录。您可以使用以下步骤找到完整路径。

找到你的绝对主机路径

1. Log in to your Account Manager.
2. Click Web Hosting.
3. Next to the hosting account you want to use, click Launch.

在“服务器”部分,您的主机帐户的绝对主机路径显示。

如果这不是您要保存会话的位置,您可以在php.ini文件中更改此内容,或在脚本中使用session_save_path()函数。

有关XAMPP堆栈的信息,您可以查看here