Php Cookie被忽略了

时间:2014-11-13 04:37:16

标签: php jquery cookies drupal

我有一个模块应该使用php创建一个cookie,如果它还没有存在。如果它没有确认cookie的存在,则会创建它并实现一个js文件,然后显示一个叠加层。否则该功能应该结束。问题是,js会在每次刷新时加载,即使它不应该。请帮助,我非常感谢,谢谢。

Cookie PHP

<?php
/**
 * @file
 * Checks for cookie, non-existent: creates cookies + implements js, else
 * removes specfic content
 */

/*
 * Implements hook_preprocess_page().
 */
function cookie_check_preprocess_page($hook, &$variables) {
        // Check for cookie
        if (!isset($_COOKIE['firsttime'])) {
            // Set variables for setcookie
            $name = 'firsttime';
            $value = 'no';
            // six months
            $expire = time()+(15768000);
            // Directory
            $path = '/~wolfden/';  
            $domain = 'hitechwolf.com';
            // Create cookie
            setcookie($name, $value, $expire, $path, $domain, true, true);
            // Implement the js
            // Welcome Overlay/Button Functionality ONLY ON FIRST TIME VISIT               
            $path = drupal_get_path('module', 'cookie_check');
            drupal_add_js($path . '/js/welcome_button.js');
        }
        else {
            return '';      
        }
}

重叠JS

/**
 * @file
 *  Appends Welcome Overlay to page, upon button
 *  click closes overlay
 */

(function ($, Drupal){
    Drupal.behaviors.welcomeOverlay = {
      attach : function() {
          $('#block-panels-mini-welcome-overlay').appendTo('body');
                function clickButton() {
                $('.welcome-content').fadeTo('500', 0, 'linear', function(){
                    $('.welcome-overlay').slideToggle('700', 'linear', function(){
                  $('#block-panels-mini-welcome-overlay').remove();     
                    });     
                });
    }
    setTimeout(function () {
               $('.welcome-overlay').slideToggle('700', 'linear', function(){
                 $('.welcome-content').fadeTo('500', 1, 'linear');  
               });
    }, 1500); 
    $('.w-button').on('click', clickButton);     
  }
 }
})(jQuery, Drupal);

Site In Question

1 个答案:

答案 0 :(得分:0)

由于某种原因,您的Cookie未设置。你编写代码来设置cookie是

setcookie($name, $value, $expire, $path, $domain, true, true);

您设置的最后2个参数为TRUE。最后一个TRUE是为了安全性,它表示cookie应该只通过来自客户端的安全HTTPS连接传输。设置为TRUE时,仅在存在安全连接时才设置cookie。

您的网站&#34; http://hitechwolf.com/wolfden/&#34;不是https。所以你的cookie没有设置。

通过设置FALSE

来尝试
setcookie($name, $value, $expire, $path, $domain, false, true);