PHP会话启动函数和CLI

PHP会话启动函数和CLI,php,command-line-interface,server,Php,Command Line Interface,Server,PHP CLI中使用的函数session_start打印下一个警告:session_start():无法发送会话cookie-已由第2行/home/robi/p/test.PHP中的/home/robi/p/test.PHP中的(输出开始于/home/p/test.PHP:1)发送的头文件为什么 我想将所有客户端条目记录在一个变量中,并通过比较用户上次输入的时间和当前输入的时间来检查是否有来自特定远程地址的伪造!我做错了吗 这是我的密码: <?php session_start(); $

PHP CLI中使用的函数session_start打印下一个警告:
session_start():无法发送会话cookie-已由第2行/home/robi/p/test.PHP中的/home/robi/p/test.PHP中的(输出开始于/home/p/test.PHP:1)发送的头文件
为什么

我想将所有客户端条目记录在一个变量中,并通过比较用户上次输入的时间和当前输入的时间来检查是否有来自特定远程地址的伪造!我做错了吗

这是我的密码:

<?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)是一个Unicode字符,用于表示文本文件或流的结束顺序(字节顺序)


该字符被发送到输出流,因此您无法重新定义标头(
session\u start
在标头中设置cookie)。

错误来自第一行,因此您应该尝试将文件转换为utf-8,而不必更改

引述:

字节顺序标记(BOM)是一个Unicode字符,用于表示文本文件或流的结束顺序(字节顺序)


该字符被发送到输出流,因此您无法重新定义标题(
session\u start
在标题中设置cookie)。

您的问题是,除了在CLI中使用会话没有意义之外,该输出在
session\u start()之前已经启动


正如我在代码中看到的,代码直接以
session_start()开头
,我相信您在
之前有一些字符。您的问题是,除了在CLI中使用会话没有意义之外,输出在
会话_start()之前已经开始了



正如我在代码中看到的,代码直接以
session_start()开头,我相信您在
session\u start()之前有一些字符。
需要在您执行其他操作之前。。但不是在CLI中。。你为什么要在控制台中使用它呢?可能有更好的方法Sessions是一个web SAPI概念,在CLI SAPI中根本不存在,因此在从命令运行时不要使用session startline@MarkBaker尽管如此,这个错误信息似乎已经失去了联系。请先显示你的代码,然后再告诉我。我在控制台中使用它是因为我想用客户端url传输库来测试这一点,并更清楚地看到结果,以便进行调试。
session\u start()。。但不是在CLI中。。你为什么要在控制台中使用它呢?可能有更好的方法Sessions是一个web SAPI概念,在CLI SAPI中根本不存在,因此在从命令运行时不要使用session startline@MarkBaker尽管如此,这个错误信息似乎已经失去了联系。请先显示你的代码,然后再告诉我。我在控制台中使用它是因为我想用一个客户端url传输库来测试这一点,并在我的php.ini
default\u charset
is
“UTF-8”
中更清楚地看到调试结果,我能做什么?在文本文件中使用json?Notepad++,在CLI中使用会话之前,它是一个空白:PHP会话通过在用户浏览器中设置cookie在不同的页面/脚本上保存数据,CLI忽略cookie。在我的PHP.ini中,默认字符集是
“UTF-8”
我能做什么?在文本文件中使用json?Notepad++,在CLI中使用会话之前是一个空白,没有意义:PHP会话通过在用户浏览器中设置cookie在不同的页面/脚本上保存数据,CLI忽略cookie。是的,现在警告消失了,但会话根据此函数不起作用,我得到了
PHP\u SESSION\u NONE
(如果启用了会话,但不存在任何会话)。是的,它仍然不工作,因为在CLI中使用会话毫无意义。会话依赖于使客户端可识别的令牌。在大多数情况下,这是通过cookies完成的,但您的CLI不会处理cookies。因此,每当您的CLI被视为新用户时。您可以尝试使用CLI将SID(会话id)存储在某个位置,并在下次通过CLI再次调用脚本时将该SID用作参数。是的,我知道,在CLI中使用会话是没有意义的,因此我认为临时创建会话cookie系统以从文件读取/写入SID是唯一的选择。那么我想知道
setcookie()
是否能完成这项工作?你觉得怎么样?我正在用php开发一个websocket服务器,对我来说访问会话变量是非常有意义的…是的,现在警告消失了,但是会话不起作用。根据这个函数,我得到了
php\u session\u NONE
(如果启用了会话,但不存在任何会话)。是的,它仍然不起作用,因为在CLI中使用会话毫无意义。会话依赖于使客户端可识别的令牌。在大多数情况下,这是通过cookies完成的,但您的CLI不会处理cookies。因此,每当您的CLI被视为新用户时。您可以尝试使用CLI将SID(会话id)存储在某个位置,并在下次通过CLI再次调用脚本时将该SID用作参数。是的,我知道,在CLI中使用会话是没有意义的,因此我认为临时创建会话cookie系统以从文件读取/写入SID是唯一的选择。那么我想知道
setcookie()
是否能完成这项工作?你觉得怎么样?我正在用php开发一个websocket服务器,对我来说,访问会话变量非常有意义。。。