【问题标题】:How can I access the php $_SESSION variable in Mink (Behat)?如何访问 Mink (Behat) 中的 php $_SESSION 变量?
【发布时间】:2013-11-15 01:33:37
【问题描述】:

我正在尝试编写代码来登录用户,这是该场景的先决条件。我不想让浏览器真正访问登录页面,填写字段并提交,这对于每个场景来说似乎都是浪费时间。我想我只会使用登录用户并设置他的会话变量的幕后代码。像这样……

$fr_user = new User();
$user_id = 0;
$fr_user->loginUser($email,$pwd);
$user_id = $_SESSION['fr_id'];
$user = new User($user_id);

<some checks to make sure the $user_id set properly...>

$this->getSession()->visit($url."?".SID);

如果我在步骤定义中对 $_SESSION 变量执行 var_dump,我可以看到它运行良好,fr_id 正在设置。

我什至让它将 php 会话 ID 发送到我正在访问的网页,但是当我在实际网页上执行 var_dump 时,会话完全空白,即使会话 ID 相同。 (中间没有可以删除任何东西的代码)

那么,我错过了什么?在行为代码和硒浏览器窗口中是否发生了单独的会话?如何让他们交流?

谢谢

【问题讨论】:

    标签: selenium-webdriver behat mink


    【解决方案1】:

    我并不肯定,但我认为您正试图从客户端访问 $_SESSION 变量数据。该变量只能从服务器端代码访问。

    session_id 来回传递给浏览器,但实际数据不是。

    如果您希望在客户端可以访问数据,则需要在服务器端使用函数 setcookie() 将 $_SESSION 值转换为原始 cookie。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多