检测PHP中是否启用cookie

2024-04-16

我正在尝试检测我的页面上的用户是否启用了 cookie。以下代码执行检查,但是,我不知道如何将用户重定向到他们来自的页面。

该脚本启动一个会话并检查是否已检查 cookie。如果没有,它会将用户重定向到测试页面,并且由于我在第一页中调用了 session_start(),因此如果用户代理启用了 cookie,我应该会看到 PHPSESSID cookie。

问题是,这个脚本可能会从我网站的任何页面调用,我必须将它们重定向回他们选择的页面,比如index.php?page=news&postid=4。

session_start();
// Check if client accepts cookies //
if (!isset($_SESSION['cookies_ok'])) {
    if (isset($_GET['cookie_test'])) {
        if (!isset($_COOKIE['PHPSESSID'])) {
            die('Cookies are disabled');
        } else {
            $_SESSION['cookies_ok'] = true;
            header(-------- - ? ? ? ? ? -------- -);
            exit();
        }
    }
    if (!isset($_COOKIE['PHPSESSID'])) {
        header('Location: index.php?cookie_test=1');
        exit();
    }
}

我认为最好让一个文件设置cookie并重定向到另一个文件。然后下一个文件可以检查该值并确定cookie是否启用。请参阅示例。

创建两个文件,cookiechecker.php and stat.php

// cookiechecker.php
// save the referrer in session. if cookie works we can get back to it later.
session_start();
$_SESSION['page'] = $_SERVER['HTTP_REFERER'];
// setting cookie to test
setcookie('foo', 'bar', time()+3600);
header("location: stat.php");

and

stat.php

<?php if(isset($_COOKIE['foo']) && $_COOKIE['foo']=='bar'): 
// cookie is working
session_start();
// get back to our old page
header("location: {$_SESSION['page']}");
else:            // show the message ?>
cookie is not working
<? endif; ?>

Load cookiechecker.php在浏览器中它会告诉cookie is working。使用命令行调用它,例如curl。它会说,cookie is not working


Update

这是一个单文件解决方案。

session_start();

if (isset($_GET['check']) && $_GET['check'] == true) {
    if (isset($_COOKIE['foo']) && $_COOKIE['foo'] == 'bar') {
        // cookie is working
        // get back to our old page
        header("location: {$_SESSION['page']}");
    } else {
        // show the message "cookie is not working"
    }
} else {
    // save the referrer in session. if cookie works we can get back to it later.
    $_SESSION['page'] = $_SERVER['HTTP_REFERER'];
   // set a cookie to test
    setcookie('foo', 'bar', time() + 3600);
    // redirecting to the same page to check 
    header("location: {$_SERVER['PHP_SELF']}?check=true");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测PHP中是否启用cookie 的相关文章

  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • preg_match 所有以@开头的单词?

    我对正则表达式不太确定 所以我不得不问你 如何用 PHP 判断字符串中是否包含以 开头的单词 例如我有一个像 This is for codeworxx 这样的字符串 我很抱歉 但我没有任何起点 希望你能帮忙 谢谢 萨沙 好的 谢谢你的结果
  • PHP 和 DOM 文档

    我有一个关于 DOMDocument 的使用和创建 XML 的问题 我有一个 PHP 程序 加载到 XML 文件中 处理XML的每个节点 行 将其发送到另一个进程 然后该进程返回一个 XML 元素 我获取节点的字符串表示形式 以便可以创建
  • 如何处理 PHP 中浮点数的奇怪舍入

    众所周知 浮点运算并不总是完全准确 但是如何处理它的不一致之处呢 As an example in PHP 5 2 9 this doesn t happen in 5 3 echo round 14 99225 4 14 9923 ech
  • 从 json 数组获取值并执行 sql 插入

    这是我的数组 json 1 Device ID a9a3346be4375a92 Date 2012 05 31 Time 15 22 59 Latitude 51 4972912 Longitude 0 1108178 2 Device
  • 如何使用 PHP 从内容中查找 URL?

    需要一个简单的 preg match 它将在内容中查找 c aspx 不带引号 如果找到 它将返回整个 url 举个例子 content div 4 a href m c aspx mt 01 9310ba801f1255e02e411d8
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • 如何在 Laravel 中 session_write_close() ?

    Running session write close before sleep 在 Laravel 中似乎不起作用 因为会话仍然被其他请求阻止 直到当前连接完成 我试图sleep 在 Laravel 中 不会阻止其他请求 发现 sessi
  • 从单个 javascript 函数向两个不同的 PHP 脚本发送两个 Ajax 请求

    是否可以同时向两个或多个 Php 脚本发送 Ajax 请求 我知道这可以串行实现 从 1 获取响应 然后从另一个获取响应 但我想知道是否可以同时实现 请协助我使用以下代码 function calShowUpload if http rea
  • ajax 会增加还是降低安全性?

    我正在创建一个网站 到目前为止它是纯 PHP 的 我在想 既然很少有人没有启用 JavaScript 我想知道为什么 也许我应该将我的网站创建为一个完全 PHP 的网站 而不使用任何 AJAX 难道是我想错了 可以肯定的是 如果我实施一些
  • Laravel 5.6 - 注册表无法正常工作并且不显示任何错误

    在我最近的一个项目中 定制登记表不管用 当我单击注册按钮时 它会重新加载注册表单 不会打印任何错误 并且不会将数据插入数据库中 这是注册表的外观 这里是移民文件代码 public function up Schema create user
  • 获取目录中最后修改的文件

    有没有办法只选择目录中的最后一个文件 扩展名jpg png gif 或者我是否必须解析整个目录并使用进行检查filemtime 是的 你必须通读它们 但由于目录访问已被缓存 因此您不必真正担心它 files array merge glob
  • MySQL:“您的 SQL 语法错误...靠近键...”? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我发现了一个非常酷的用于丢失密码的脚本 但是这一行给我带来了问题 r mysql query INSERT INTO keys u
  • 对更改运行 PHPUnit 测试

    每当磁盘上的文件发生更改时 我想运行 PHPUnit 测试 或至少其中的一个子集 与您可以使用 进行的操作非常相似 咕噜手表 https github com gruntjs grunt contrib watch blob master
  • 如何在PHP中将图像从内存上传到AWS S3?

    所以我目前有一个使用 AWS S3 上传图像的上传系统 这是代码 Upload image to S3 s3 Aws S3 S3Client factory array key gt mykey secret gt myskey try s
  • 从文本文件 PHP 读取数据

    我只是想知道如何在 php 中读取文本文件 我想让它显示文本文件中的最后 200 个条目 每个条目都在一个新行上 Like John White Jane Does John Does Someones Name 等等 Thanks Use
  • PHP URL 验证

    我知道有无数的线程问这个问题 但我一直无法找到一个可以帮助我解决这个问题的线程 我基本上试图解析大约 10 000 000 个 URL 的列表 确保它们根据以下标准有效 然后获取根域 URL 此列表包含您能想象到的几乎所有内容 包括类似的内
  • 如何从列表创建多维数组?

    我在 MySQL 中有一个带有父 ID 的类别列表 如何从列表中创建 PHP 数组 ID Category Parent ID 1 Car NULL 2 Education NULL 3 Mathematics 2 4 Physics 2
  • 如何编写可以补偿拼写错误数据的 MySQL 搜索?

    有没有什么方法可以编写一个 MySQL 搜索来弥补用户在拼写等方面的错误 作为随机示例 有人可能会输入 电子邮件受保护 cdn cgi l email protection代替 电子邮件受保护 cdn cgi l email protect
  • 如何在php中关闭夏令时

    我有这行代码将夏令时设置为 打开 将其设置为 关闭 的正确方法是什么 is daylight saving On rcmail config dst active bool date I date I 这是一个大写字母 i 当当前默认时区

随机推荐

  • c中如何检查字符串中的重复字符

    我正在尝试创建一个程序来检查命令行参数字符串中的重复字符 该字符串假定仅包含 26 个字符 并且所有字符都必须是字母顺序的 但是 字符串中不能有任何重复的字符 每个字母字符只能出现一次 我弄清楚了程序的前两部分 但我不知道如何检查重复的字符
  • 多线程代理检查器

    我有很少的代码 例如 using WebClient wc new WebClient wc Proxy new WebProxy IP Port resume if wc IsBusy string rtn msg string Empt
  • 使用 php 从 mysql 删除逗号

    我有一个列名称战斗机 其中包含 mysql 中的一些值 例如 战士 摇滚 约翰 塞纳 承办人 所以 我希望当我在浏览器中显示它时 它应该看起来像 Rock 约翰 塞纳 送葬者 我只想使用 PHP 从数据库中删除逗号 任何帮助将不胜感激 Gi
  • Tweetsharp 授权不呈现 oauth 令牌

    我正在尝试在我的 asp net mvc 3 应用程序中实现 tweetsharp 但遇到了问题 我使用以下设置创建了一个新的 Twitter 应用程序 申请网站 http 127 0 0 1 8545 http 127 0 0 1 854
  • 当互联网连接或断开时收到通知

    我有一个在 Net 4 0 客户端下开发的 WPF 和 C 桌面应用程序 必须根据 PC 上的互联网是否可用来显示或隐藏某些数据的框架 这意味着我必须能够尽快检测到互联网是否断开或连接 以便做出反应 例如 断开无线网络或拔掉网络电缆 当我进
  • Angular 6 构建中的 style.js 是什么

    偷看html源代码 我使用 sass 使用 ng 6 构建 SPA 我找到了这些文件列表 我想知道 style js 是做什么用的 我正在
  • VIM自动插入PHPdoc

    有没有办法使用命令或组合键在 VIM 中插入 PHPDoc 例如 我有一堂课 class MyClass public function construct public function destruct command here to
  • 没有扩展名的文件名叫什么?

    给定文件名foo bar baz 我们可以说foo is the dirname bar baz is the basename and baz is the extname 但是有没有一个类似的术语可以用来表示foo bar or bar
  • C++ 没有 DELETE 宏的原因

    在那儿任何好的理由 也许除了 宏是邪恶的 不使用以下宏 define DELETE ptr if ptr NULL delete ptr ptr NULL define DELETE TABLE ptr if ptr NULL delete
  • 如何应用iOS VNImageHomographicAlignmentObservation warpTransform?

    我正在测试 Apple 的 Vision Alignment API 并对 VNHomgraphicImageRegistrationRequest 有疑问 有人让它工作吗 我可以从中得到 warpTransform 但我还没有看到一个有意
  • 如何通过FTP将多个多级(不同层次)文件从本地版本覆盖到在线版本

    我只是在本地更改了几个不同目录中的许多文件 然后将更改推送到 Subversion 但这不会更改实时版本 只会更改存储库 现在我必须通过 FTP 更新这些文件 但它们都是不同的层次结构级别 我怎么做 我知道的唯一方法是采用我的整个本地版本并
  • YUV420 到 RGB 转换

    我使用以下公式将 RGB 矩阵转换为 YUV 矩阵 Y 0 257 R 0 504 G 0 098 B 16 Cr V 0 439 R 0 368 G 0 071 B 128 Cb U 0 148 R 0 291 G 0 439 B 128
  • Java中获取Spark当前任务ID

    我需要获取 Spark 中当前任务的 ID 我一直在Google和官方API中搜索 但我能找到的唯一ID是执行者ID和RDD的ID 有谁知道如何获取任务的唯一ID 我看到班级TaskInfo正是我正在寻找的东西 但我不知道如何获取此类的实例
  • 正则表达式从查询字符串中删除一个参数

    我正在寻找一个正则表达式来从查询字符串中删除单个参数 并且如果可能的话 我想在单个正则表达式中执行此操作 假设我要删除foo范围 现在我用这个 foo 只要foo不是查询字符串中的第一个参数 如果是 那么我的新查询字符串以 符号开头 例如
  • 姜戈。线程安全的更新或创建。

    我们知道 更新是线程安全的操作 这意味着 当你这样做时 SomeModel objects filter id 1 update some field 100 代替 sm SomeModel objects get id 1 sm some
  • Spring-如何保护RESTful私有资源?

    我有一些 RESTful 服务 使用 Spring MVC 实现 公开一组资源 我已经使用基于 HTTPBasicAuthentication 和 HTTPS 的身份验证 某些资源必须只能由某些用户访问 例如 我希望 URI 中的所有子资源
  • jQuery,单击时连续调用多个动画

    到目前为止 我已经做到了 所以当页面打开时 一些动画会运行以使一些图片和文本滑入视图中 我在页面顶部有链接 这些链接没有目的地 但我已将它们全部链接用于样式目的 例如效果悬停 访问等 链接有类 所有链接都有 nav 类 然后它们每个都有相关
  • WPF:列表视图在顶部而不是底部显示最近添加的项目

    我有一个集合绑定到列表视图 该集合每 4 5 秒添加一次项目 新项目将自动添加到列表视图的底部 因此 如果您想看到最新的项目 那么您需要向下滚动到底部 我的问题是 是否可以反转列表视图 以便新的最新项目位于顶部 最旧的项目位于底部 Than
  • 视频馈送至 ThingsBoard 仪表板

    我目前使用 ThingsBoard 作为 IoT 代理来捕获来自多个传感器的遥测数据并将其显示到仪表板 我想添加显示来自 iPhone 相机或网络摄像头的实时视频源的功能 我想知道这里是否有人知道 ThingsBoard 是否支持任何类型的
  • 检测PHP中是否启用cookie

    我正在尝试检测我的页面上的用户是否启用了 cookie 以下代码执行检查 但是 我不知道如何将用户重定向到他们来自的页面 该脚本启动一个会话并检查是否已检查 cookie 如果没有 它会将用户重定向到测试页面 并且由于我在第一页中调用了 s