你好,有什么办法可以解决这个问题吗?
OsTicket 1.10
赢得 2012 R2
阿帕奇 2.4
php 7.1
安装了所有东西,遇到这个问题。 阅读很多,找到了将“session.auto_start”更改为 1 的解决方案,它对我有用。 我登录了,但过了一会儿仍然遇到同样的问题。
我的猜测是因为您正在运行 PHP 7.1.0(几天前发布)。 我的理解是 osticket 1.10 仍然不完全兼容 7.0。 您可能希望将等级降低到 5.6,看看是否有帮助。
谢谢! 我明天尝试重新安装它。
所有这些 php 东西对我来说都是新的,所以我只是下载了所有东西的最新版本。 我认为应该有某种通知,php 7+ 尚未正式支持。
我在 PHP 7.1 上遇到了同样的问题,我将降级到 PHP 5.6,在最旧的 PHP 上一切正常。
OsTicket 和 PHP 7 似乎是不同的问题https://github.com/osTicket/osTicket/issues/3033
我在 OSticket 1.10、Apache 和 PHP 7.1 上遇到了这个问题。 将 PHP 降级到 7.0.14 后,错误消失了。 希望这可以帮助任何人。
这是在处理吗? PHP 7.1 现已发布,对它的 osTicket 支持会很棒。
我希望这正在处理中
我在 PHP 7.1 + osticket 1.10 上有同样的问题。
关于我的挖掘的一些信息:
"OSTSESSID=nntpjei4195nd6ru6h759mtk1d; expires=Tue, 28-Mar-2017 12:46:50 GMT; Max-Age=86400; path=%PATH%"
DoesNotExist
异常upload/include/class.ostsession.php(184): QuerySet->one()
(当然,这是获救。)有人会尝试上面的补丁 424bfc9 吗? 它解决了我的问题。
我将根据反馈决定提出拉取请求。
@kaorukobo你的补丁对我
@kaorukobo
可以确认修复对我也有效。 Centos 7、PHP 7.1.3 来自 Remi OSTicket 1.10
相应的拉取请求被批准:
https://github.com/osTicket/osTicket/pull/3773
我刚刚安装了最新的 osTicket,我使用的是 Windows 7 Professional Edition Service Pack 1 i586 上的 PHP 版本 7.1.5,并且我在第一次登录管理员时获得了有效的 CSRF 令牌
这很糟糕。 与https://github.com/osTicket/osTicket/issues/304相同的问题? 我希望我在升级之前就知道。 我无法返回此服务器,因为我的某些脚本需要 PHP7。 这应该是优先级 1。
亲爱的@Tomashley303看来 PHP 7 的这个问题不会很快修复,因为保持 PHP 和其他软件更新对于安全性非常重要 我已经升级到 PHP 7
这是有效的修复程序: https :
仅供参考,我遇到了同样的问题,我的机器上的时间不正确。
刚刚发现在 PHP5.6 上可以登录我的 OSticket。 一旦我将我的服务器设置为 PHP7.1,我就无法再登录到 OSTicket 并获得 Valid CSRF Token Required 消息。
@Richardvi osTicket 支持 php7 而不是 php7.1。 所以这很可能是你的问题。
好,谢谢!
谢谢大哥,真的很有帮助。
谢谢!!! 工作正常 :)
今天是 osTicket 的新手,如果它不支持 php7.1.x,对我来说是交易破坏者,直到它支持。
对我有用只需要在一个文件上添加一个新行👍
https://github.com/osTicket/osTicket/commit/424bfc99d93b920f6162b602eeea41125086425d
有谁知道这是否已在最新版本 1.10.4(昨天)中修复?
嗨@我认为这个问题没有解决,没有像最近发布的那样测试最后一个版本。
您可以在发行说明中阅读更新内容: https :
Windows + Apache + PHP 版本 7.2.7
session.auto_start=1 为我工作
Ubuntu 18.04 x64 + Apache2 + PHP 7.2-10 + osT 1.10.4
/etc/php/7.2/apache2/php.ini session.auto_start=1 对我也有用。
/etc/php/7.2/apache2/php.ini session.auto_start=1 对我也有用。
嗨@jpkh非常感谢您分享 session.auto_start=1 应该放置的位置。 这是 php (ini) 配置的编辑,我在问 OsTicket 应该更改什么来解决这个问题。 通常我更喜欢在软件中而不是在 PHP 中进行修复。 很高兴知道有一个适用于 PHP 7.2 的解决方案,但也许我会等待了解是否可以在 OsTicket 方面解决该问题。
最新版本兼容Php 7.0,所以可以从7.1降级到7.0。 轻松修复
在 PHP 7.1 及更高版本中,您需要从会话读取处理程序返回一个字符串,否则您将收到错误 - 文档一直说它应该返回一个字符串,但 PHP 现在才开始强制执行。 查看 php 日志,看看您是否有 PHP 警告:session_start(): Failed to read session data: user
在 class.ostsession.php 的 read 方法中的 return 之前添加以下行
if(!is_string($this->data->session_data)) {
$this->data->session_data = strval($this->data->session_data);
}
这可确保无论您在会话数据中放入什么内容,您始终会按应有的方式返回字符串
出于安全原因,降级 PHP 版本从来都不是一个好主意。 双重糟糕,因为 PHP 7.0 已经脱离了常规支持,并且在一个月内脱离了安全支持 :(
@auroraeosrose class.ostsession.php 中有两个读取函数,您能指定需要插入此代码段的行吗? 第 270 行的 read 函数? 还是 183 上的那个? PS感谢您提供此解决方案...当我使用session.auto_start=1
它破坏了我在同一台服务器上运行的其他应用程序之一(TestLink),因此我感谢一个仅涉及更改 OST 而不是 php 的解决方案.ini
@davidtessier
班级DbSessionBackend
那个,把它放在 return 的正上方。
聚苯乙烯
这在1.11
解决:
干杯。
谢谢! 那行得通。
在 PHP 7.1 及更高版本中,您需要从会话读取处理程序返回一个字符串,否则您将收到错误 - 文档一直说它应该返回一个字符串,但 PHP 现在才开始强制执行。 查看 php 日志,看看您是否有 PHP 警告:session_start(): Failed to read session data: user
在 class.ostsession.php 的 read 方法中的 return 之前添加以下行
if(!is_string($this->data->session_data)) { $this->data->session_data = strval($this->data->session_data); }
这可确保无论您在会话数据中放入什么内容,您始终会按应有的方式返回字符串
出于安全原因,降级 PHP 版本从来都不是一个好主意。 双重糟糕,因为 PHP 7.0 已经脱离了常规支持,并且在一个月内脱离了安全支持 :(
谢谢,这对我有用。
@auroraeosrose 的解决方案也适用于 PHP7.2.15 和 osticket 1.10.5
@auroraeosrose的解决方案适用于:
发行商 ID:Debian
描述:Debian GNU/Linux 9.8(扩展版)
版本:9.8
代号:拉伸
阿帕奇 2.4
PHP 版本 7.2.16
最有用的评论
有人会尝试上面的补丁 424bfc9 吗? 它解决了我的问题。
我将根据反馈决定提出拉取请求。