当前位置: 首页 > 面试题库 >

检查是否启用了cookie

东郭子默
2023-03-14
问题内容

我正在一个需要JavaScript和会话的页面上工作。我已经有代码来警告用户是否禁用了javascript。现在,我想处理禁用cookie的情况,因为会话ID存储在cookie中。

我只想到了几个主意:

  1. 将会话ID嵌入链接和表单中
  2. 警告用户如果禁用了cookie,则必须启用cookie(需要帮助来检测cookie是否被禁用)

解决此问题的最佳方法是什么?谢谢

编辑

根据链接的文章,我想出了自己的方法,并认为我可以分享,其他人也许可以使用它,也许我会得到一些批评。(假设您的PHP会话存储在名为的Cookie中PHPSESSID

<div id="form" style="display:none">Content goes here</div>
<noscript>Sorry, but Javascript is required</noscript>
<script type="text/javascript"><!--
if(document.cookie.indexOf('PHPSESSID')!=-1)
   document.getElementById('form').style.display='';
else
   document.write('<p>Sorry, but cookies must be enabled</p>');
--></script>

问题答案:

JavaScript

在JavaScript中,您可以简单测试cookieEnabled属性,所有主要浏览器都支持该属性。如果您使用的是较旧的浏览器,则可以设置Cookie并检查其是否存在。(从Modernizer借来的):

if (navigator.cookieEnabled) return true;

// set and read cookie
document.cookie = "cookietest=1";
var ret = document.cookie.indexOf("cookietest=") != -1;

// delete cookie
document.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";

return ret;

PHP

在PHP中,它相当“复杂”,因为您必须刷新页面或重定向到另一个脚本。在这里,我将使用两个脚本:

somescript.php

<?php
session_start();
setcookie('foo', 'bar', time()+3600);
header("location: check.php");

check.php

<?php echo (isset($_COOKIE['foo']) && $_COOKIE['foo']=='bar') ? 'enabled' : 'disabled';


 类似资料:
  • 问题内容: 我一直在做一些关于CoreLocation的研究。最近,我遇到了一个问题,该问题已在其他地方解决,但在Objective C和iOS 8中已涵盖。 我觉得这有点愚蠢,但是如何在iOS 9上检查是否使用swift启用了定位服务? 在iOS 7(甚至可能是8?)上,您可以使用,但是在为iOS 9编译时似乎无法正常工作。 那我该怎么做呢? 谢谢! 问题答案: 将添加到您的类继承中,然后可以进

  • 问题内容: 有没有办法检查PHP是否启用了JavaScript?如果是这样,怎么办? 问题答案: 不可以,这是不可能的,因为PHP是一种服务器端语言,它不会以任何方式或形式(客户端从PHP服务器请求)访问客户端的浏览器。 客户端可以通过HTTP标头提供一些元信息,但是它们不一定告诉您用户是否启用了JavaScript,并且您无论如何也不能依赖它们,

  • 问题内容: 我正在使用以下代码 这可以启用或禁用它 但我想作为函数说函数名是 那么我可以按照我的网站代码中的任意位置来称呼它 与我先前的问题几乎相同,请检查是否启用了allow_url_fopen 问题答案: 只需从函数中返回现有支票即可。

  • 我有以下型号: 在另一个图书馆服务的方法: 只有在启用延迟加载时,它才能正常工作: 如果未启用延迟加载,则不填充用户属性。我想抛出一个异常,如果有人试图使用我的服务没有启用延迟加载。怎么做呢?我试图检查属性

  • 问题内容: 我在想,如果有可能,以检查是否被启用 的Apache 和 IIS 在 。 *存在用于IIS的 *ModRewrite 。检查一下。 因此,我正在寻找一个在 Apache 和 IIS 上进行检查的PHP脚本 。 有谁知道这样的脚本或可以写一个? 特别是对于Microsoft IIS 。 谢谢! 问题答案: 如果您使用的是mod_php,则可以使用。这将返回所有已启用模块的数组,因此要检查

  • 问题内容: 有什么方法可以检查Go程序是否在运行时启用了编译功能(例如,用于日志记录/信息目的)? 我检查了文档以及明显的位置(),但找不到任何东西。 问题答案: 据我所知,没有对此的简单检查,但是启用了 build标签后,您就可以利用它了。 我创建了一个新目录,并在其中放置了两个文件: : : 由于使用了build标签,将仅编译两个文件之一。 这也是围棋标准库是怎么做的(,),但由于这是一个内部