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(执行代码的地方),但不是来自重定向页面。是否有一个简单的修复方法?两个页面是否在同一个域中?同一个目录?或不同的路径/域