0

我不确定如果我是用鼹鼠山造一座山......

我有两台服务器 A + B。我知道服务器 A 上存在一个带有会话 cookie 的 PHP 会话。我进一步知道在其中一个会话文件(存储在 var/lib/php5 中)存在一个唯一值,例如:

$_SESSION['name'] = "1_colourXY"

我可以通过在 dir/ 文件中搜索这个值(fe:文件 sess_489b9515146e7390ac03b5dabf36b70e)来用 php 识别这个 cookie 文件。

我现在希望服务器 B 能够告诉 A 将新值存储到此显式 cookie 文件中。我的解决方案是:

服务器 B(不是启动会话的客户端!)调用服务器 A 上的 PHP 文件。在 B 通过一些安全检查后,A 应该使用 file_puts_content 向该 cookie 文件写入一个新值。注意,因为写的 Server B 还没有开始会话所以我想我不能简单地做

session_start();
$_SESSION['myval'] = "new val";

因此我有以下问题:

  1. 是否有更简单的(本机会话处理)方式而不是 file_puts... 将值写入 cookie 文件,例如:

    write $_SESSION['myval'] = "new val" to
    sess_489b9515146e7390ac03b5dabf36b70e
    
  2. 会话 Dir var/lib/php5 具有 chmod 773,要在其中写入和搜索,我必须将权限更改为 777(urrgh)。如何保留 773 但使其可用于 php

  3. 如果我打开一个 cookie 文件,值如下所示: place|s:6:"Muster"; |s:6: 是什么意思?

亲切的问候,

托尼

4

1 回答 1

0
  1. 您应该使用 MySQL 之类的数据库来存储会话,然后将所有会话调用抽象到该数据库中。

  2. 见 1。

  3. 这就是 PHP 类型被序列化为字符串的方式。在这种情况下 s:6:"Muster" 是一个 6 个字符长的字符串,恰好是 "Muster"。

于 2013-03-07T17:44:40.037 回答