Symfony2 无法正确保存会话

2023-12-12

我在 Symfony 在每个页面加载时创建一个新会话而不是跨请求携带数据时遇到问题。 config.yml 中会话部分的 auto_start 设置为 false,常规 php 会话工作正常。只有在 symfony 中运行时我才会遇到问题。

例如,我创建了测试操作:

public function sessionTestAction()
{

    $s_Response = '<html><head></head><body><p>Foo</p></body></html>'; //Initialize response and headers
    $a_Headers = array();
    $i_StatusCode = 200;


    $oSession = $this->get('session');
    var_dump($oSession->all());

    if(!$oSession->has('Test'))
    {
        $oSession->set('Test', 'Bar');
    }

    $oSession->save();
    return new Response($s_Response, $i_StatusCode, $a_Headers);
}

预期的操作是,在第一个页面加载时,var_dump 将不会产生任何结果,并且在任何后续执行中,它将包含 Test=>Bar。但是,它永远不会跨请求获取该数据。

此外,它还为每个请求创建一个新的会话 ID。

我正在使用 Symfony v2.0.15 和 PHP v5.4

有人有主意吗?

Edit:

我想我取得了一些进步。我对测试操作做了以下更改:

public function sessionTestAction()
{

     //Initialize response and headers
    $oRequest = $this->get('request');
    $a_Headers = array();
    if (isset($oRequest->headers->all()['cookie']))
    {
        $a_Headers['Set-Cookie'] = $oRequest->headers->all()['cookie'];
    }
    $i_StatusCode = 200;


    $oSession = $oRequest->getSession();
    $oSession->start();
    $s_Response = print_r($oSession->all(), true);
    if(!$oSession->has('Test'))
    {
        $oSession->set('Test', 'Bar');
    }

    $oSession->save();
    $oResponse = new Response($s_Response, $i_StatusCode, $a_Headers);
    return $this->render('Bundle:Default:index.html.twig', array('response' => $s_Response), $oResponse);
}

该树枝文件只有 {{response|raw}}。现在,它为 3 个请求中的 2 个保留会话。然而,在第三次请求时,它被清除了。


结果问题是,有人在 app.php 运行时添加了一行来设置会话 cookie,我猜,他不知道 symfony 本身处理会话。问题解决了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2 无法正确保存会话 的相关文章

  • 未捕获的 ValueError:mysqli_stmt::execute():参数 #1 ($params) 必须是列表数组

    我试图通过这两个查询在我的数据库中插入准备好的语句多个值 这两个查询都发生故障 返回 未捕获的错误 调用未定义的方法 mysqli stmt bindValue 对于第一个代码或 未捕获的 ValueError mysqli stmt ex
  • 将 jQuery 数组字符串转换为 PHP 数组

    首先 我得说我对 PHP 还很陌生 我正在尝试获取一个可以使用 foreach 的 PHP 对象 以下字符串通过 ajax 传递 我正在尝试转动以下字符串 menu title TEST1 href title TEST2 href QWE
  • 基于 PHP 的 CSV 编辑器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道用 PHP 编写的在线 CSV 编辑器允许用户打开 编辑和保存给定的 CSV 文件 我能找到的只
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • 如何在 SQL Server 会话中设置自动提交?

    如何在 SQL Server 会话中设置自动提交 您可以通过将implicit transactions设置为OFF来打开自动提交 SET IMPLICIT TRANSACTIONS OFF 当设置为ON时 返回隐式事务模式 在隐式事务模式
  • 为什么我应该使用 $_GET 和 $_POST 而不是 $_REQUEST? [复制]

    这个问题在这里已经有答案了 除此之外 REQUEST从 cookie 读取 有什么理由我应该使用 GET and POST代替 REQUEST 这样做的理论和实践理由是什么 当我只想让用户的某些数据返回某些数据时 我使用 REQUEST 当
  • 如何在 PHP 中正确分割路径

    执行以下操作的最佳方法是什么 我通过 AJAX 请求获取路径 e g dir1 dir2 dir3 dir4 我需要在我的网页上这样展示它 dir1 gt gt dir2 gt gt dir3 gt gt dir4 它们每个都是 html
  • Laravel 5 与 SAML 2 和现有 IDP 集成

    我使用 Laravel 5 我正在尝试将 SAML 2 0 与其集成 我找到了这个包 https github com aacotroneo laravel saml2 https github com aacotroneo laravel
  • WooCommerce:用文本覆盖购物车价格

    我们有很多产品具有以下功能 No price 零价格 我们让它们可以通过内置挂钩购买 但购物车仍然将它们显示为具有0 price结账时 我们希望购物车和结帐摘要显示 特殊订单 或任何其他文本 但 WooCommerce 似乎使基于文本的价格
  • Propel Query 中的动态表名称

    我想知道您是否可以使 propel 查询的表名称动态化 有点像变量 一个例子类似于 DynamicVar Query create 我让它在 ifs 中工作 就像下面的例子一样 但如果更动态地制作 可以删除相当多的行 这些表的设置都是相同的
  • 如何在 Laravel 5 中处理嵌套的 JSON 对象请求?

    我们在 Laravel 5 和 AngularJs Ionic 中运行此 Web 服务来处理 Web 当我们将请求从 Web 客户端 发送到 Web 服务 后端 时 我们传递了嵌套的 JSON 对象 我们在读取服务器端父对象下的所有子对象时
  • URL 重写帮助

    RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php q 1 L 这应该将任何 url 重写为 index php q url 并且它可以工作 反正
  • 疯狂的 crond 行为。不断使 bash 进程失效

    我有一个看起来像这样的 crontab SHELL bin bash PATH sbin bin usr sbin usr bin MAILTO root HOME 0 59 var www html private fivemin zda
  • 将秒转换为天、小时、分钟和秒

    我想转换一个变量 uptime这是秒 分为天 小时 分钟和秒 Example uptime 1640467 结果应该是 18 days 23 hours 41 minutes 这可以通过以下方式实现DateTime http php net
  • 翻译即时消息

    如果表单成功 我正在尝试翻译我发送的即时消息 正常的请求是这样的 request gt getSession gt getFlashBag gt add notice Your E Mail has been sent 所以我尝试使用以下变
  • 使用 php 和 symfony 从数组创建 Excel 文件

    我正在尝试使用 PHP 和 symfony 将数组导出为 XLS 文件 如下面的代码所示 创建 XLS 文件后 我只能获取数组的最后一行 并且它显示在文件的第一行中 似乎 lignes 变量没有增加 我不明白出了什么问题 有人可以帮忙吗 f
  • ZF2 工厂获取参数

    我有一个动态类别导航 在导航工厂中 我想从路线获取参数 我怎样才能做到这一点 在我看来 在我的 module php 中 public function getServiceConfig return array factories gt
  • 转换MAC地址格式

    我刚刚编写了一个小脚本 从交换机中提取数百个 MAC 地址进行比较 但它们的格式为 0025 9073 3014 而不是标准的 00 25 90 73 30 14 我对如何转换它感到困惑 我能想到的最好的办法就是在 处将它们分解成碎片 然后
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日
  • Laravel 5 注销特定用户

    在我的 laravel 5 应用程序中 有一个功能允许具有管理员角色的用户重置非管理员的任何人的密码 但这不会强制该人注销并再次登录 更改密码后如何强制用户注销 我没有对用于验证用户身份或任何内容的中间件进行任何更改 我不知道它是否有效 但

随机推荐

  • 在c#中生成单词组合数组

    我有一个字符串 例如 big baddog 如何获得包含所有可能的单词 短语组合的 string 数组 所以 我想返回 big bad dog big bad baddog 和 big baddog 因此必须尊重原始字符串中单词的顺序 这是
  • 如何禁用 Primefaces 输入文本中的特殊字符和字母?

    我想要一个
  • JDBC 实现如何工作

    在 JDBC 中 我看到Connection是一个接口 它定义了与数据库交互的方法 我还知道接口只包含抽象方法 并且不能实例化 但是在 JDBC 代码中 以下内容是如何工作的 Connection connection DriverMana
  • sed 或 awk 打印单词之间的行

    如何打印之间的所有行 B 部分 到行中开始的下一个 部分 单词 A 节 B 节 C 部分 sed n section B n section B d q p yourfile 上述 sed 脚本的说明 分步骤 虽然线路没有 从 开始sect
  • 通过改变 ID 或文件名关闭资源管理器窗口

    我已经在这些论坛上搜索了几个小时 试图找到一种方法来编写我认为比这简单得多的代码 所以这就是我想做的 我的任务计划程序每两天运行一个脚本 该脚本打开一个explorer exe文件夹的路径 然后删除该文件夹中的所有文件 调度程序在我不在办公
  • 错误:调用线程无法访问此对象,因为另一个线程拥有它

    我收到这个错误 这是代码 Image image BitmapImage BmpImg MemoryStream ms public void Convert ms new MemoryStream image Save ms ImageF
  • 为什么在使用初始化器、构造函数和方法调用时打印语句按此顺序执行?

    这是我正在运行的代码 该代码的输出是 4 2 1 3 有人可以解释一下为什么结果是按这个顺序打印的 public class goFuncTest goFuncTest System out print 1 System out print
  • asp.net MVC webmatrixmembershipprovider 启动

    从 mvc2 mvc3 迁移后有一些小问题 我在调用 Membership GetAllUsers 时遇到以下问题 似乎不是 System Web Security SqlMembershipProvider WebMatrix WebDa
  • 使用 json_encode() 时删除数组索引引用

    我使用 jQuery 制作了一个小应用程序datepicker 我从 JSON 文件中设置不可用的日期 如下所示 dates 2013 12 11 2013 12 10 2013 12 07 2013 12 04 我想检查给定的日期是否已在
  • 如何在给定 XSD 的情况下在 C# 中进行多态反序列化?

    我给出以下内容 1 XML 架构 XSD 文件 使用 XSD EXE 工具编译为 C 类 2 RabbitMQ 消息队列 包含 XML 格式中定义的任何类型的格式良好的消息 以下是不同消息的两个片段
  • Haskell:基础阅读 Int

    目标是用 Haskell 编写 Nim 游戏作为学校作业 我是 Haskell 新手 当我尝试读取输入时会出现奇怪的行为 目标是读取两个整数 它不是打印第一条消息 然后提示 然后继续第二条消息 而是只打印两条消息 而我无法提供正确的输入 这
  • 从单独的线程类获取数据时不显示进度对话框

    我正在使用单独的线程从 url 获取 json 对象 但问题是我想在获得结果时显示进度对话框 我创建了一个进度对话框 并在线程执行之前和之后调用显示和关闭 但未显示进度对话框 这是我调用线程的方式 private void getRecor
  • 如何使用 web3js 发送 ERC20 令牌

    我目前使用的是 0 2x x 版本的 Web3 JavaScript API 我通过在 Solidity 中创建智能合约 在 REMIX IDE 上 来部署自定义 ERC20 代币 我安装了 MetaMask 并进行了测试https wal
  • 在引导 Angular2 应用程序之前发出 AJAX 请求 [重复]

    这个问题在这里已经有答案了 在我的 Angular2 应用程序中 我需要根据此调用的结果从 AuthenticationService 和引导应用程序调用某些函数 问题是 AuthenticationService 依赖于来自 Angula
  • 在 MATLAB 中计算实际频率值与 FFT 绘图索引之间的关系时出现混乱

    我知道有很多类似的问题 但我仍然无法找出答案 假设 MATLAB 中有时间信号 t 0 1 44100 1 和频率为 500Hz 的余弦信号 x cos 2 pi 500 t 现在 我正在尝试绘制使用以下方法获得的幅度谱fft信号 x 上的
  • 点击事件触发两次

    我试图在单击标签文本时运行某些函数 但单击事件触发了两次 HTML
  • 排除/覆盖 npm 提供的类型

    我有一个 npm 包 里面写得不好 打字也过时了 我已经编写了自己的类型 现在我想知道是否可以以某种方式从 npm 包中排除原始类型 它不是一个简单的接口扩展 原来的在这一点上基本上是垃圾 当然 使用 tsconfig json 中的排除列
  • 非常基本的 dcg prolog 语法

    我试图理解序言和定语从句语法 但我很难理解它们 我真的很想了解如何使用 dcg 语法 这里我举两个例子 第一个实际上是来自该论坛上另一个问题的代码 但还有一个附加问题 代码如下 s gt first operator second firs
  • Android studio:如何使用 ViewPager 添加选项卡

    我想在片段中添加带有 pagerview 可滚动 的选项卡 public class MyFragment extends Fragment private FragmentTabHost tabHost Override public V
  • Symfony2 无法正确保存会话

    我在 Symfony 在每个页面加载时创建一个新会话而不是跨请求携带数据时遇到问题 config yml 中会话部分的 auto start 设置为 false 常规 php 会话工作正常 只有在 symfony 中运行时我才会遇到问题 例