首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >会话在使用symfony 2.0的后台进程PHP文件中不工作

会话在使用symfony 2.0的后台进程PHP文件中不工作
EN

Stack Overflow用户
提问于 2014-09-11 10:40:58
回答 2查看 540关注 0票数 0

我是在发送电子邮件的背景处理。对于后台进程,我使用symfony 2.0。背景工作成功。但在后台我无法得到会话值..。以下代码为index.php

代码语言:javascript
复制
session_start();
$_SESSION['album_upload'] = {"a","b"};
$command = file_get_contents('background.php');
$process = new PhpProcess($command);
$process->run();

以下代码为background.php

代码语言:javascript
复制
session_start();
$message = $_SESSION['album_upload'][0];
mail("webmaster@example.com","example",$message,"From: $from\n"); // Session doesn't give any value. 

如果我删除会话,尝试像mail("webmaster@example.com","example","example","From: $from\n");那样发送邮件,那么邮件就会发送。

如何在background.php中获取会话值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-11 10:49:05

尝试从您的第一个脚本中检索会话id并将其传递给下一个脚本。你可以用id()函数c来做

代码Index.php

代码语言:javascript
复制
$session_id = session_id();
new PhpProcess($command, null, array('session_id' => $session_id));
$process->start();
while ($process->isRunning()) {// waiting for process to finish }

代码background.php

代码语言:javascript
复制
session_id($_SERVER['session_id']);
session_start();
$message = $_SESSION['album_upload'][0];
mail("webmaster@example.com","example",$message,"From: $from\n"); // Session doesn't give any value. 
票数 2
EN

Stack Overflow用户

发布于 2014-09-11 10:56:04

PhpProcess作为单独的php进程运行;这意味着它无法访问对服务器的原始请求可用的$_SESSION信息。

您可以按以下方式传递数据:

代码语言:javascript
复制
new PhpProcess($command, null, array('album_upload' => $_SESSION['album_upload'][0]));

这将允许您以变量的形式访问后台脚本中的数据:

代码语言:javascript
复制
$_SERVER['album_upload']
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25785345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档