Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cookie日志记录[PHP]_Php_Cookies_Fwrite - Fatal编程技术网

Cookie日志记录[PHP]

Cookie日志记录[PHP],php,cookies,fwrite,Php,Cookies,Fwrite,文本文件已创建,但未存储任何内容 <?php $cookie = $_COOKIE['PHPSESSID']; $file = fopen('cookie.txt', 'a'); fwrite($file, $cookie . "\n\n"); ?> 编辑: 找到了解决办法 <?php session_start(); $cookie = $_COOKIE['PHPSESSID']; file_put_contents("cookie.txt", $cookie, FIL

文本文件已创建,但未存储任何内容

<?php
$cookie = $_COOKIE['PHPSESSID'];
$file = fopen('cookie.txt', 'a');
fwrite($file, $cookie . "\n\n");
?>

编辑:

找到了解决办法

<?php
session_start();
$cookie = $_COOKIE['PHPSESSID'];
file_put_contents("cookie.txt", $cookie, FILE_APPEND);
?>

第一组代码中的错误是什么?

一些问题

1) 会话ID假定您有一个正在运行的会话。我没有看到
会话_start()所以我假设cookie从未设置过


2)
$\u COOKIE['PHPSESSID']
非常不可靠。使用
session\u id()
而不是与
session\u start()

结合使用此代码是正确的,问题是cookie值为空,因为未设置会话,用户应首先转到具有设置cookie值的session start的PHP页面启动会话

<?php 
session_start();
找到了解决方案:

<?php
session_start();
$cookie = $_COOKIE['PHPSESSID'];
file_put_contents("cookie.txt", $cookie, FILE_APPEND);
?>


cookie与
session不同
我不确定您的意思,但是OP提到的cookie名为PHPSESSID,由PHP session设置。我不太理解您设置会话的意思。您正在访问一个名为PHPSESSID的变量,它是PHP会话ID的缩写,此ID仅在会话正在运行时设置(会话是一种特殊标记的浏览器设置,其工作方式类似于cookie),您试图在没有会话运行的情况下访问会话ID您遇到的主要问题是会话_start()。文件内容和写入应该可以工作。您应该注意的另一个问题是session_start将设置cookie,但是$_cookie['PHPSESSID']将仍然为空,直到用户再次刷新,以便浏览器发送cookie。理想情况下,session_start应该在本页面之前的另一个页面中保存sessionfile_put_内容似乎更高效、变量更少、行数更少、更直观(至少在我看来)我错了吗?哪个是更好的实践?这个特定场景中的文件内容更有效,你是对的,代码更少,但我只是说这不是问题所在。我得到了登录php的cookie(执行代码的地方),但不是来自重定向页面。是否有一个简单的修复方法?两个页面是否在同一个域中?同一个目录?或不同的路径/域