Php 是否启用或禁用Javascript/Cookie?
我正在寻找一些代码,如果用户启用或禁用JavaScript以及cookie,这些代码将返回我的值 我知道这可能很容易做到,但我的时间限制太紧了,很痛。必须有一些东西在那里使用php来做到这一点。理想情况下,我希望找到具有页面设置的代码,其中包含可能影响脚本的所有可能值 编辑:显然JavaScript可能被禁用,但是,我希望我能找到一些东西来测试这两种情况 我的解决方案 对于其他正在寻找代码来检测用户是否启用或禁用了cookie的人,下面是我从下面的帖子中得出的结论。。。你可以把它放在任何页面的顶部,它就可以工作了Php 是否启用或禁用Javascript/Cookie?,php,javascript,cookies,Php,Javascript,Cookies,我正在寻找一些代码,如果用户启用或禁用JavaScript以及cookie,这些代码将返回我的值 我知道这可能很容易做到,但我的时间限制太紧了,很痛。必须有一些东西在那里使用php来做到这一点。理想情况下,我希望找到具有页面设置的代码,其中包含可能影响脚本的所有可能值 编辑:显然JavaScript可能被禁用,但是,我希望我能找到一些东西来测试这两种情况 我的解决方案 对于其他正在寻找代码来检测用户是否启用或禁用了cookie的人,下面是我从下面的帖子中得出的结论。。。你可以把它放在任何页面的顶
<?php
// do a cookie test
if (!isset($_SESSION['cookie_check']))
{
if (!isset($_GET['cc']))
{
// drop a cookie in their bag
setcookie("cookiecheck", "ok", time()+3600);
header("Location: ".$common->selfURL()."?cc=1");
exit(0);
}
else
{
// do we have a problem?
if (@$_COOKIE['cookiecheck'] != "ok")
{
// we have a problem
header("Location: /site-diag.php");
exit(0);
}
else
{
$_SESSION['cookie_check'] = true;
}
}
}
?>
您可以使用编写cookie,然后查看是否可以重新读取。这将告诉您是否在客户端浏览器中启用了Cookie。这里有一个用于检查Cookie的选项
如果禁用了javascript,则不能使用jquery或prototype 编写一个函数来写入cookie,然后尝试读取它 然后在屏幕上显示一些js代码,对基本php脚本进行ajax调用
您可以使用数据库设置访问者表上两个测试的布尔结果(如果有) 首先,要意识到,如果关闭JavaScript,就不能使用JavaScript检查cookies。检查cookies是否打开的常用方法是先写一个cookies,然后再读取它 您是否关心cookies打开但JavaScript关闭的情况?根据这些信息,你打算做什么 我找到了通过PHP检查cookie的方法。不依赖JavaScript。PHP是您的服务器语言吗
<?php
class cookieCheck
{
public function check()
{
if (setcookie("test", "test", time() + 100))
{
//COOKIE IS SET
if (isset ($_COOKIE['test']))
{
return "Cookies are enabled on your browser";
}
else
{
return "Cookies are <b>NOT</b> enabled on your browser";
}
}
}
}
?>
检查Javascript时,要么有,要么没有。如果没有,您可以使用
标记显示一条消息,要求他们打开它,在里面放置一个元重定向,等等。这就是您的测试能力范围
至于cookies,只需尝试设置cookie,然后将其读回即可!由于您担心Javascript处理cookie的能力,我假设您已经有了一个正在使用的cookie库,这意味着您可以对测试cookie使用
set
函数,然后使用get
函数将其读回。如果无法读回测试cookie,cookie将关闭。这是我检查cookie和JavaScript是否已启用的方法:
if($_SESSION['JSexe']) { // 3rd check js
if($_COOKIE['JS']) {
setcookie('JS','JS',time()-1); // check on every page load
}
else {
header('Location: js.html');
}
}
// 2nd so far it's been server-side scripting. Client-side scripting must be executed once to set second cookie.
// Without JSexe, user with cookies and js enabled would be sent to js.html the first page load.
elseif($_COOKIE['PHP']) {
$_SESSION['JSexe'] = true;
}
else { //1st check cookies
if($_GET['cookie']) {
header('Location: cookies.html');
}
else{
setcookie('PHP','PHP');
header('Location: '.$_SERVER['REQUEST_URI'].'?cookie=1');
}
}
此处详细解释:如果启用了JavaScript,它将:你还想测试Java吗?我在考虑制作一个红色的框,上面写着“Java已禁用”,如果Java已启用,只需将其替换为一个绿色框…你的站点是否同时使用Java和JavaScript?不,只是JavaScript。。。对我来说说java很容易。。。我是说javascript,对不起;)在读取正在使用setcookie()设置的cookie之前,您不需要执行重定向吗?如果我的内存工作正常,第一次运行此代码时,您将得到“未启用”响应,但如果要刷新,则会显示cookie已设置。