Cookie组合Javascript/PHP上的所有子域
Cookie combination Javascript/PHP on all subdomains
我在我的网站上实现了一个'cookie通知栏'。它是一个灰色的透明条它被固定在屏幕的底部,带有cookie使用的通知链接到一个有更多信息的页面,在最右边有一个"关闭"按钮。酒吧藏起来了使用带有javascript on-click事件的display:none。我的下一个问题:是否有可能在关闭点击栏的同一功能中设置cookie ?因为它似乎不工作,我的代码:
//在body标签前加上:
<script language="javascript">
function closeCookieBar() {
document.getElementById('cookiepolicy').style.display = 'none';
SetCookie("cookiepolicy", 1, 8)
}
</script>
//在页面底部我有:
<div id="cookiepolicy" <?php if(isset($_cookie['cookiepolicy'])){ echo "style='"display:none'""; } ?> >
<div id="cookiepolicy-wrapper">
<div id="cookiepolicy-txt">
<span id="cookiepolicy-notice">Deze website maakt gebruik van cookies. Waarom? Klik <a href="http://....nl/cookies.php" target="_blank">hier</a> voor meer informatie.</span>
<span id="cookiepolicy-accept-cookies" onclick="closeCookieBar();">Sluit</span>
</div>
</div>
</div>
下一个问题我预见:我有大约415个子域名,我想要这个cookie保存为好,如果它设置在主域,它会为我的子域工作吗?
提前感谢!
桑德
我也许能帮上部分忙。由于使用的是PHP,因此该PHP脚本可以设置一个cookie,该cookie可用于所有子域和子目录。如果您使用的域名是xxx.co.uk,那么您可能需要在第30-40行进行一些调整。
<?php // RAY_cookie_splash_page.php
error_reporting(E_ALL);
// SHOW A SPLASH PAGE ON FIRST ENTRY, THEN COOKIE THE BROWSER TO SKIP SPLASH PAGE
// TO SEE COOKIES IN FIREFOX, FOLLOW TOOLS => OPTIONS => PRIVACY => SHOW COOKIES
// MAN PAGE: http://php.net/manual/en/function.setcookie.php
// DEFINITIONS AS NEEDED HERE
define('COOKIE_LIFE', 60*60*24); // A 24-HOUR DAY IN SECONDS ( = 86,400 )
// CONSTRUCT AND SET THE COOKIE
// USE THIS TO MAKE COOKIE EXPIRE AT END OF BROWSER LIFE
$cookie_expires = 0;
// USE THIS TO MAKE A PERSISTENT COOKIE - DEFINE COOKIE_LIFE IN SECONDS - date('Z') IS UTC OFFSET IN SECONDS
$cookie_expires = time() + date('Z') + COOKIE_LIFE;
// CHOOSE THE COOKIE NAME AND VALUE
$cookie_name = 'Fred';
$cookie_value = 'Wilma';
// MAKE THE COOKIE AVAILABLE TO ALL DIRECTORY PATHS IN THE WWW ROOT
$cookie_path = '/';
// MAKE THE COOKIE AVAILABLE TO ALL SUBDOMAINS - DOMAIN NAME STARTS WITH DOT AND OMITS WWW (OR OTHER SUBDOMAINS).
$x = explode('.', strtolower($_SERVER["HTTP_HOST"]));
$y = count($x);
if ($y == 1) // MAYBE 'localhost'?
{
$cookie_domain = $x[0];
} else // SOMETHING LIKE 'www2.atf70.whitehouse.gov'?
{
// USE THE LAST TWO POSITIONS TO MAKE THE HOST DOMAIN
$cookie_domain = '.' . $x[$y-2] . '.' . $x[$y-1];
}
// MAKE THE COOKIE AVAILABLE TO HTTP, NOT JUST HTTPS
$cookie_secure = FALSE;
// HIDE COOKIE FROM JAVASCRIPT TO IMPROVE SECURITY (PHP 5.2+)
$cookie_http = TRUE;
// SET THE COOKIE (BUT DO NOT BOTHER OUTPUTTING THE DEBUGGING MESSAGES)
if (setcookie($cookie_name, $cookie_value, $cookie_expires, $cookie_path, $cookie_domain, $cookie_secure, $cookie_http))
{
// echo "<br/>SUCCESS! THE COOKIE HAS BEEN SET AND WILL BE AVAILABLE TO THE NEXT PAGE LOAD 'n";
} else {
// echo "<br/>FAILURE! THE COOKIE WAS NOT SET AS EXPECTED 'n";
}
// IF THE COOKIE IS NOT AVAILABLE IN THIS SCRIPT, SHOW THE SPLASH PAGE
if (empty($_COOKIE["Fred"]))
{
echo "<h1>SPLASH PAGE</h1>'n";
echo "<p><a href='"{$_SERVER["REQUEST_URI"]}'">CONTINUE TO SITE</a></p>'n";
echo date('c');
die("'nSPLASH COMPLETE");
}
// SPLASH PAGE HAS ALREADY BEEN SHOWN
echo "<h1>REGULAR START PAGE - AFTER SPLASH HAS BEEN SHOWN</h1>'n";
echo "<p><a href='"{$_SERVER["REQUEST_URI"]}'">CONTINUE TO SITE</a></p>'n";
echo date('c');
die("'nREGULAR PAGE COMPLETE");
你可以在js中创建cookie然后在PHP中使用,像这样
function closeCookieBar() {
document.getElementById('cookiepolicy').style.display = 'none';
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
document.cookie = name+"="+value+expires+"; path=/; domain=.example.com";
}
<div id="cookiepolicy" <?php if(isset($_cookie['cookiepolicy'])){ echo "style='"display:none'""; } ?> >
在name的位置输入cookie的名称,在domain的位置输入域名。希望对你有帮助。
>>>>>>>>>>>>>>>>>>>>>>
相关文章:
- 在单独加载时运行良好的组合javascript中可能导致错误的原因
- 组合 JavaScript 数组
- 组合 Javascript 函数
- 如何组合 JavaScript 对象
- 从选择/组合 JavaScript 中删除节点
- 组合 JavaScript 函数
- 组合 Javascript 变量
- 如何在 HTML 中组合 JavaScript 变量
- 函数组合javascript
- 如何缩小和组合Javascript和CSS
- 编程岩石,纸张,剪刀的选择组合-Javascript
- 比较和组合Javascript中的数组
- AngularJS通过组合javascript文件减少HTTP请求
- 有条件地组合javascript文件作为预编译步骤(比r.js更灵活)
- 在博客上组合Javascript
- 动态组合JavaScript数组
- 创建所有可能的组合- javascript
- 文本框&选择字段组合(Javascript + Rails)
- 使用Javascript预处理器组合Javascript文件
- 哪个更好:公共JavaScriptCDN或自托管组合JavaScript