PHP session_start 函数和 CLI
PHP session_start function and CLI
函数 session_start 在 PHP CLI 中使用打印下一个警告:session_start(): Cannot send session cookie - headers already sent by (output started at /home/robi/p/test.php:1) in /home/robi/p/test.php on line 2
为什么?
我想将所有客户端条目记录在一个变量中,并通过比较用户上次输入时间和当前输入时间来检查我是否从特定远程地址伪造了!我做错了吗?
这是我的代码:
<?php
session_start();
$client_entry = time();
$_SESSION["entries"][] = $client_entry;
$entries = $_SESSION["entries"];
$check_out = array_filter(
$entries,
function($value) use($client_entry) {
return ($value >= ($client_entry + (1 * 0.6)));
}
);
错误来自第一行,所以你应该尝试将你的文件转换为 utf-8 而不是 BOM。
The byte order mark (BOM) is a Unicode character used to signal the endianness (byte order) of a text file or stream.
该字符被发送到输出流,因此您无法重新定义 headers(session_start
在 headers 中设置了一个 cookie)。
你的问题是,除了在 CLI 中使用会话没有意义之外,输出已经在 session_start();
之前开始。
正如我在你的代码中看到的那样,你的代码直接以 session_start();
开头,我相信你在 <?php
之前有一些字符。确保 <?php
位于文件的第一行(因此其上方也没有空行),并且其前面没有任何内容(例如白色 space)。
这应该可以解决您遇到的问题。
函数 session_start 在 PHP CLI 中使用打印下一个警告:session_start(): Cannot send session cookie - headers already sent by (output started at /home/robi/p/test.php:1) in /home/robi/p/test.php on line 2
为什么?
我想将所有客户端条目记录在一个变量中,并通过比较用户上次输入时间和当前输入时间来检查我是否从特定远程地址伪造了!我做错了吗?
这是我的代码:
<?php
session_start();
$client_entry = time();
$_SESSION["entries"][] = $client_entry;
$entries = $_SESSION["entries"];
$check_out = array_filter(
$entries,
function($value) use($client_entry) {
return ($value >= ($client_entry + (1 * 0.6)));
}
);
错误来自第一行,所以你应该尝试将你的文件转换为 utf-8 而不是 BOM。
The byte order mark (BOM) is a Unicode character used to signal the endianness (byte order) of a text file or stream.
该字符被发送到输出流,因此您无法重新定义 headers(session_start
在 headers 中设置了一个 cookie)。
你的问题是,除了在 CLI 中使用会话没有意义之外,输出已经在 session_start();
之前开始。
正如我在你的代码中看到的那样,你的代码直接以 session_start();
开头,我相信你在 <?php
之前有一些字符。确保 <?php
位于文件的第一行(因此其上方也没有空行),并且其前面没有任何内容(例如白色 space)。
这应该可以解决您遇到的问题。