【问题标题】:Issue with '=>' after switching from PHP 7.0 to 7.2从 PHP 7.0 切换到 7.2 后出现 '=>' 的问题
【发布时间】:2019-04-25 22:09:41
【问题描述】:

我从 php 7.0 切换到 7.2。更改后,第一个“=>”之后的代码作为文本输出到我的页面。

修改文本,删除部分数组,完全删除 session_start 中的数组。所做的只是将问题移到下一个“=>”

<? 
$file = __FILE__;
if (empty($_COOKIE['PHPSESSID'])) {
    header('HTTP/1.0 403 Forbidden');
    $level = 'Security';
    $errorMessage = "[{$file}] [{$level}] Session cookie not passed".PHP_EOL;
    error_log($errorMessage);
    die();
} else {
    session_id($_COOKIE['PHPSESSID']);
}
session_start([
    'gc_maxlifetime'    =>3600,
    'use_strict_mode'   =>1,
    'use_only_cookies'  =>1,
    'cookie_lifetime'   =>604800,
    'cookie_secure'     =>1,
    'cookie_httponly'   =>1
]);
//'cookie_samesite' =>1 add in after php 7.3

我预计会话会开始并且 php 会完成。和php 7.0下一样

发生的情况是代码运行到第一个“=>”。此时它输出 "3600,'use_strict_mode'=>1, .... 以 "?>" 结束

在 apache2 错误日志中,我得到一个“未定义的变量:_SESSION in .....”,这表明会话从未开始。没有显示其他错误。

【问题讨论】:

  • 尝试在开始会话之前创建一个数组,使用“=”分配每个键。会话仍未创建,但文本未输出。

标签: php session php-7.2


【解决方案1】:

它似乎在 php.ini 文件中。我将 php.ini 文件从 7.0 文件夹复制到 7.2 文件夹,一切都开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 2012-07-08
    • 1970-01-01
    相关资源
    最近更新 更多