Visualizzazione risultati 1 fino 5 di 5

Discussione: Cookie scadenza data

  1. #1
    paolin non è connesso Utente
    Data registrazione
    13-02-2014
    Messaggi
    130

    Predefinito Cookie scadenza data

    Salve,
    ho uno script relativo ai cookie funzionante, con impostato la scadenza ad Un Anno, vorrei modificare la scadenza a Un Mese
    Ci ho perso il pomeriggio , ma le mie conoscenze son molto basiche, chiedo gentilmente se qualcuno può modificarmi la data "expiryDate" a un mese (ovvero 30 giorni).

    Grazie mille!

    Ecco l'intero codice:
    Codice:
    /*
     Copyright 2014 Google Inc. All rights reserved.
    
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
    
     http://www.apache.org/licenses/LICENSE-2.0
    
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
     -PRIVACY-
     */
    
    (function(window) {
    
      if (!!window.cookieChoices) {
        return window.cookieChoices;
      }
    
      var document = window.document;
      // IE8 does not support textContent, so we should fallback to innerText.
      var supportsTextContent = 'textContent' in document.body;
    
      var cookieChoices = (function() {
    
        var cookieName = 'displayCookieConsent';
        var cookieConsentId = 'cookieChoiceInfo';
        var dismissLinkId = 'cookieChoiceDismiss';
    
        function _createHeaderElement(cookieText, dismissText, linkText, linkHref) {
          var butterBarStyles = 'position:fixed;display:block;background-color:#fae4ab;font-family:verdana;font-size:13px;' +
              'margin:0; left:0; top:0; right:1px;padding:4px;z-index:1000;text-align:center; box-shadow:2px 3px 5px #999;';
    
          var cookieConsentElement = document.createElement('div');
          cookieConsentElement.id = cookieConsentId;
          cookieConsentElement.style.cssText = butterBarStyles;
    	  var elementiInfo = cookieText.split('<br>');
    	  for (var item in elementiInfo) {
    	  cookieConsentElement.appendChild(_createConsentText(elementiInfo[item]));
    	  if (item+1<elementiInfo.length)
    	  cookieConsentElement.appendChild(document.createElement('br'));
    	  }
    
          if (!!linkText && !!linkHref) {
            cookieConsentElement.appendChild(_createInformationLink(linkText, linkHref));
          }
          cookieConsentElement.appendChild(_createDismissLink(dismissText));
          return cookieConsentElement;
        }
    
        function _createDialogElement(cookieText, dismissText, linkText, linkHref) {
          var glassStyle = 'position:fixed;width:100%;height:100%;z-index:999;' +
              'top:0;left:0;opacity:0.5;filter:alpha(opacity=50);' +
              'background-color:#ccc;';
          var dialogStyle = 'z-index:1000;position:fixed;left:50%;top:50%';
          var contentStyle = 'position:relative;left:-50%;margin-top:-25%;' +
              'background-color:#fff;padding:20px;';
    
          var cookieConsentElement = document.createElement('div');
          cookieConsentElement.id = cookieConsentId;
    
          var glassPanel = document.createElement('div');
          glassPanel.style.cssText = glassStyle;
    
          var content = document.createElement('div');
          content.style.cssText = contentStyle;
    
          var dialog = document.createElement('div');
          dialog.style.cssText = dialogStyle;
    
          var dismissLink = _createDismissLink(dismissText);
          dismissLink.style.display = 'block';
          dismissLink.style.textAlign = 'right';
          dismissLink.style.marginTop = '8px';
    
          content.appendChild(_createConsentText(cookieText));
          if (!!linkText && !!linkHref) {
            content.appendChild(_createInformationLink(linkText, linkHref));
          }
          content.appendChild(dismissLink);
          dialog.appendChild(content);
          cookieConsentElement.appendChild(glassPanel);
          cookieConsentElement.appendChild(dialog);
          return cookieConsentElement;
        }
    
        function _setElementText(element, text) {
          if (supportsTextContent) {
            element.textContent = text;
          } else {
            element.innerText = text;
          }
        }
    
        function _createConsentText(cookieText) {
          var consentText = document.createElement('span');
          _setElementText(consentText, cookieText);
          return consentText;
        }
    
        function _createDismissLink(dismissText) {
          var dismissLink = document.createElement('a');
          _setElementText(dismissLink, dismissText);
          dismissLink.id = dismissLinkId;
          dismissLink.href = '#';
          dismissLink.style.marginLeft = '24px';
          return dismissLink;
        }
    
        function _createInformationLink(linkText, linkHref) {
          var infoLink = document.createElement('a');
          _setElementText(infoLink, linkText);
          infoLink.href = linkHref;
          infoLink.target = '_blank';
          infoLink.style.marginLeft = '8px';
          return infoLink;
        }
    
        function _dismissLinkClick() {
          _saveUserPreference();
          _removeCookieConsent();
          return false;
        }
    
        function _showCookieConsent(cookieText, dismissText, linkText, linkHref, isDialog) {
          if (_shouldDisplayConsent()) {
            _removeCookieConsent();
            var consentElement = (isDialog) ?
                _createDialogElement(cookieText, dismissText, linkText, linkHref) :
                _createHeaderElement(cookieText, dismissText, linkText, linkHref);
            var fragment = document.createDocumentFragment();
            fragment.appendChild(consentElement);
            document.body.appendChild(fragment.cloneNode(true));
            document.getElementById(dismissLinkId).onclick = _dismissLinkClick;
          }
        }
    
        function showCookieConsentBar(cookieText, dismissText, linkText, linkHref) {
          _showCookieConsent(cookieText, dismissText, linkText, linkHref, false);
        }
    
        function showCookieConsentDialog(cookieText, dismissText, linkText, linkHref) {
          _showCookieConsent(cookieText, dismissText, linkText, linkHref, true);
        }
    
        function _removeCookieConsent() {
          var cookieChoiceElement = document.getElementById(cookieConsentId);
          if (cookieChoiceElement != null) {
            cookieChoiceElement.parentNode.removeChild(cookieChoiceElement);
          }
        }
    
        function _saveUserPreference() {
          // Set the cookie expiry to one year after today.
          var expiryDate = new Date();
          expiryDate.setFullYear(expiryDate.getFullYear() + 1);
          document.cookie = cookieName + '=y; expires=' + expiryDate.toGMTString();
        }
    
        function _shouldDisplayConsent() {
          // Display the header only if the cookie has not been set.
          return !document.cookie.match(new RegExp(cookieName + '=([^;]+)'));
        }
    
        var exports = {};
        exports.showCookieConsentBar = showCookieConsentBar;
        exports.showCookieConsentDialog = showCookieConsentDialog;
        return exports;
      })();
    
      window.cookieChoices = cookieChoices;
      return cookieChoices;
    })(this);

  2. #2
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,529

    Predefinito

    Salve,
    dovrebbe bastare modficare nella funzione _saveUserPreference(), la seguente riga:
    Codice:
    expiryDate.setFullYear(expiryDate.getFullYear() + 1); // scadenza tra un anno
    In questo modo:
    Codice:
    expiryDate.setFullYear(expiryDate.getFullYear(), expiryDate.getMonth() + 1); // scadenza tra un mese
    Cordiali saluti.

  3. #3
    paolin non è connesso Utente
    Data registrazione
    13-02-2014
    Messaggi
    130

    Predefinito

    Grazie mille per la risposta!

    Ho inserito il tutto, poi l'ho provato: on-line sembra ok (nel senso che cliccando "Chiudi" non mi appare più), in locale invece facendo il refresh mi riappare sempre cmq. Ho provato anche a spostare in avanti la data del Pc (per vedere on-line se mi riappare il banner cookie, ma niente).
    C'è un modo per testare se funziona?

    Ho trovato in rete questa opzione, può funzionare?
    Codice:
    function _saveUserPreference() {
        // Calcola la data di scadenza a 30 giorni da oggi.
        var expiryDate = new Date();
        // Aggiunge 30 giorni in millisecondi (30 giorni * 24 ore * 60 minuti * 60 secondi * 1000 millisecondi)
        expiryDate.setTime(expiryDate.getTime() + (30 * 24 * 60 * 60 * 1000));
        
        // Imposta il cookie con la nuova scadenza
        document.cookie = cookieName + '=y; expires=' + expiryDate.toGMTString() + '; path=/';
        
        // Aggiunto '; path=/' che è una buona pratica per assicurare che il cookie sia valido su tutto il dominio.
    }
    Grazie per la pazienza

  4. #4
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,529

    Predefinito

    In teroria potrebbe funzionare. Nella realtà però, i mesi non sono tutti di 30 giorni. Quindi nella pratica non va bene questo.

    In generale la sintassi è questa: VarDate.setFullYear(anno, mese, giorno)

    Come avevo già menzionato, in quel codice va modificato così per gestire il conteggio della scadenza tra un mese (inteso un mese partendo dal giorno corrente)
    Codice:
    expiryDate.setFullYear(expiryDate.getFullYear(), expiryDate.getMonth() + 1);
    setFullYear() esiste dal 1997 ed a quanto ne so, è supportato anche dai browser moderni. Foese dipende dalle impostazioni del browser.

    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 22-11-2025 alle ore 19.20.16

  5. #5
    paolin non è connesso Utente
    Data registrazione
    13-02-2014
    Messaggi
    130

    Predefinito

    Va bene, ora devo aspettare un mese per vedere se funziona... in teoria tra un mese, aprendo la pagina, dovrebbe riapparire il banner Cookie.

    Grazie ancora

    Saluti

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •