Visualizzazione risultati 1 fino 18 di 18

Discussione: javascript per creare cookie tramite pulsante

  1. #1
    Guest

    Predefinito javascript per creare cookie tramite pulsante

    io uso questo script per controllare la presenza del cookie,
    Codice:
    <script language="JavaScript" type="text/javascript">
    <!--
    // Prelevato su http://www.web-link.it
    /*
    SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT
    http://www.editeurjavascript.com
    */
    function ScanCookie(variable)
    	{
    	cook = document.cookie;
    	variable += "=";
    	place = cook.indexOf(variable,0);
    	if (place <= -1)
    		return("0");
    	else
    		{
    		end = cook.indexOf(";",place)
    		if (end <= -1)
    			return(unescape(cook.substring(place+variable.length,cook.length)));
    		else
    			return(unescape(cook.substring(place+variable.length,end)));
    		}
    	}
    
    function CreationCookie(nom,valeur,permanent)
    	{
    	if(permanent)
    		{
    		dateExp = new Date(2020,11,11);
    		dateExp = dateExp.toGMTString();
    		ifpermanent = '; expires=' + dateExp + ';';
    		}
    	else
    		ifpermanent = '';
    	document.cookie = nom + '=' + escape(valeur) + ifpermanent;
    	}
    
    if(ScanCookie("web-link")==0)
    	{
    	window.alert("ciao, non hai ancora il cookie");
    	}
    
    // -->
    </script>
    a me interessa un pulsante che invii il cookie al posto dell'invio automatico,per farlo elimino questa parte di codice:
    Codice:
    CreationCookie("web-link","oui",false)
    ma non riesco ad inserire quella funzione nel mio pulsante che è:
    Codice:
    <form name="Entro" method="post" action="http://miosito.it/forum/" onlick go to>
    
       <input type="submit" name="Entro" value="Entro">
    </form>
    potete darmi una mano?

  2. #2
    Guest

    Predefinito

    La funzione la devi inserire al submit, comunque se crei un form per una funzione js non ti conviene usare il <button> ? Se inserisci l' onclick in un form è come se non funzionasse. Comunque devi inserire così:

    Codice PHP:
    onclick="CreationCookie('NOMECOOKIE','DESCRIZIONE','DURATA');"

  3. #3
    Guest

    Predefinito

    intendi una cosa del genere?
    Codice:
    <button name='cookie' onclick="CreationCookie('NOME','DESCRIZIONE','DURATA');">
    schiacciami x il cookie
    </button>
    e comunque il codice sopra inserito va sempre inserito nell'head vero?


    edit
    ho risolto solo non so come impostare la durata del cookie, in secondi o in minuti(quale unità di misura devo usare)?
    Ultima modifica di bruquittz : 04-05-2011 alle ore 00.22.21

  4. #4
    Guest

    Predefinito

    Sì, comunque sia io preferisco crearli in php.. Sinceramente con il controllo dell' esistenza e tutto mi ci trovo meglio, però ovviamente dipende dal bisogno.

  5. #5
    Guest

    Predefinito

    grazie mille exabyte , ti ripropongo il mio ultimo quesito che ho inserito in edit solo dopo la tua risposta

    non so come impostare la durata del cookie, in secondi o in minuti(quale unità di misura devo usare)?

    puoi darmi quest'ultima dritta ?

    io farei cosi:
    Codice:
    <button name='cookie' onclick="CreationCookie('p4all','DESCRIZIONE',time()+3600);">
    schiacciami x il cookie</button>
    questo per farlo vivere un'ora
    Ultima modifica di bruquittz : 04-05-2011 alle ore 00.47.05

  6. #6
    Guest

    Predefinito

    Da quel che vedo se scrivi 'permanent' durerà fino al 2020

    Codice PHP:
    if(permanent)
    {
    dateExp = new Date(2020,11,11);
    Se devi creare cose del tipo Login o votazioni credo ti convenga scrivere permanent, altrimenti credo vada espressa in minuti ( http://www.mrwebmaster.it/javascript...pt_1032_2.html )

  7. #7
    Guest

    Predefinito

    ehm ehm sono un danno allora taglio semplicemente quello spaccato di codice?

  8. #8
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    più che tagliare, sostituire: devi settare la data che vuoi. Nel link che ti ha postato exabyte, ci sono esempi del tuo caso.

    Ciao!

  9. #9
    Guest

    Predefinito

    ale ed exa grazie per l'assistenza io ho creato questo file . html
    Codice:
    <head>
    <script language="JavaScript" type="text/javascript">
    <!--
    // Prelevato su http://www.web-link.it
    /*
    SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT
    http://www.editeurjavascript.com
    */
    function ScanCookie(variable)
    	{
    	cook = document.cookie;
    	variable += "=";
    	place = cook.indexOf(variable,0);
    	if (place <= -1)
    		return("0");
    	else
    		{
    		end = cook.indexOf(";",place)
    		if (end <= -1)
    			return(unescape(cook.substring(place+variable.length,cook.length)));
    		else
    			return(unescape(cook.substring(place+variable.length,end)));
    		}
    	}
    
    function CreationCookie(nomeCookie,valoreCookie,durataCookie)
    {
      var scadenza = new Date();
      var adesso = new Date();
      scadenza.setTime(adesso.getTime() + (parseInt(durataCookie) * 60000));
      document.cookie = nomeCookie + '=' + escape(valoreCookie) + '; expires=' + scadenza.toGMTString() + '; path=/';
    }
    
    if(ScanCookie("prova")==0)
    	{
    	window.alert("ciao, non hai ancora il cookie");
    	}
    
    // -->
    </script>
    </head>
    <body>
    <button name='cookie' onclick="CreationCookie('prova','DESCRIZIONE','time()+1');">
    schiacciami x il cookie</button>
    </body>
    mi genera il cookie ma non lo cancella passato il minuto

  10. #10
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    time() non lo ricordo come funzione javascript:

    Codice:
    <button name='cookie' onclick="CreationCookie('prova','DESCRIZIONE','time()+1');">
    Poi, per aumentare di un minuto, dovresti fare una cosa del tipo:

    Codice:
    var scadenza= new Date();
    scadenza.setMinutes(scadenza.getMinutes()+1);
    ..ma un minuto non è troppo poco??

    Ciao!
    Ultima modifica di alemoppo : 04-05-2011 alle ore 01.21.33

  11. #11
    Guest

    Predefinito

    Un minuto mi basta per una prova, per verificarne il funzionamento, nella versione definitiva, lo farò durare 2 ore, inserendo un valore 120 (minuti quindi 2 ore).

    Edit:
    Ma come si "converte" la funzione time() in javascript?
    Ultima modifica di karl94 : 04-05-2011 alle ore 18.34.13

  12. #12
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    In Javascript non esiste una funzione time, se vuoi ottenere il numero di millisecondi trascorsi dalla mezzanotte del primo gennaio 1970 UTC puoi usare il metodo statico now dell'oggetto Date. Questo metodo è stato introdotto solo nell'ultima versione di Ecmascript, con alcuni browser potrebbe non funzionare, in questo caso puoi sempre usare l'espressione +new Date() per ottenere il medesimo valore.

  13. #13
    Guest

    Predefinito

    Codice:
    function CreationCookie(prova,valoreCookie,scadenza)
    {
      var scadenza= new Date();
    scadenza.setMinutes(scadenza.getMinutes()+1);
    }
    una cosa del genere potrebbe funzionare?

  14. #14
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Dovresti aggiungere anche:

    Codice HTML:
    document.cookie = nomeCookie + '=' + escape(valoreCookie) + '; expires=' + scadenza.toGMTString() + '; path=/';
    (con nomeCookie invece di prova).

    Ovvero:

    Codice:
    function CreationCookie(nomeCookie,valoreCookie,durataCookie)
    {
      var scadenza= new Date();
      scadenza.setMinutes(scadenza.getMinutes()+1);
      document.cookie = nomeCookie + '=' + escape(valoreCookie) + '; expires=' + scadenza.toGMTString() + '; path=/';
    }
    Provalo. Non sono sicuro però che funzioni: i cookie in js è da molto che non li uso... ormai li gestisco solo in PHP.

    Ciao!
    Ultima modifica di alemoppo : 04-05-2011 alle ore 18.40.11

  15. #15
    Guest

    Predefinito

    ok , ora ho questa situazione:
    Codice:
    <head>
    <script language="JavaScript" type="text/javascript">
    <!--
    // Prelevato su http://www.web-link.it
    /*
    SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT
    http://www.editeurjavascript.com
    */
    function ScanCookie(variable)
    	{
    	cook = document.cookie;
    	variable += "=";
    	place = cook.indexOf(variable,0);
    	if (place <= -1)
    		return("0");
    	else
    		{
    		end = cook.indexOf(";",place)
    		if (end <= -1)
    			return(unescape(cook.substring(place+variable.length,cook.length)));
    		else
    			return(unescape(cook.substring(place+variable.length,end)));
    		}
    	}
    
    function CreationCookie(nomeCookie,valoreCookie,durataCookie)
    {
      var scadenza= new Date();
      scadenza.setMinutes(scadenza.getMinutes()+1);
      document.cookie = nomeCookie + '=' + escape(valoreCookie) + '; expires=' + scadenza.toGMTString() + '; path=/';
    }
    
    if(ScanCookie("nomeCookie")==0)
    	{
    	window.alert("ciao, non hai ancora il cookie");
    	}
    
    // -->
    </script>
    </head>
    <body>
    
    <input type=button value='ciao' onclick="CreationCookie(nomeCookie,valoreCookie,scadenza)
    {
      var scadenza= new Date();
    scadenza.setMinutes(scadenza.getMinutes()+1);
    }" />
    </body>
    solo che il cookie non mi viene generato il comando onclick non è compatibile con input?

  16. #16
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    L'ho guardato un po più attentamente.
    Codice HTML:
    <input type=button value='ciao' onclick="CreationCookie(nomeCookie,valoreCookie,scadenza)
    {
      var scadenza= new Date();
    scadenza.setMinutes(scadenza.getMinutes()+1);
    }" />
    Che cosa è questo? Cioè, li non devi dichiarare la funzione (l'hai già dichiarata sopra), ma la devi Richiamare!

    ---

    Ecco una possibile soluzione:

    Codice HTML:
    <html>
    <head>
    <script language="JavaScript" type="text/javascript">
    <!--
    // Prelevato su http://www.web-link.it
    /*
    SCRIPT EDITE SUR L'EDITEUR JAVASCRIPT
    http://www.editeurjavascript.com
    */
    function ScanCookie(variable)
    {
    	cook = document.cookie;
    	variable += "=";
    	place = cook.indexOf(variable,0);
    	if (place <= -1)
    	return("0");
    	else
    	{
    		end = cook.indexOf(";",place)
    		if (end <= -1)
    			return(unescape(cook.substring(place+variable.length,cook.length)));
    		else
    			return(unescape(cook.substring(place+variable.length,end)));
    	}
    }
    
    function CreationCookie(nomeCookie,valoreCookie)
    {
    	var scadenza= new Date();
    	scadenza.setMinutes(scadenza.getMinutes()+1);
    	document.cookie = nomeCookie + '=' + escape(valoreCookie) + '; expires=' + scadenza.toGMTString() + '; path=/';
    }
    alert(ScanCookie("nomeCookie")); //guardo il contenuto del cookie. (0 se non esiste)
    // -->
    </script>
    </head>
    <body>
    <input type=button value='ciao' onClick="CreationCookie('nomeCookie','valoreCookie')" />
    </body>
    </html>
    .

    Ciao!
    Ultima modifica di alemoppo : 04-05-2011 alle ore 19.21.14 Motivo: aggiunto Ciao! ^^

  17. #17
    Guest

    Predefinito

    modo grazie mille ,davvero ,mi hai aiutato moltissimo

    ora devo solo capire 2 cose
    A)
    Codice:
    scadenza.setMinutes(scadenza.getMinutes()+1);
    +1 sono i minuti impostati per la "morte" del cookie giusto?

    B)al posto dell'allert voglio inserire un redirect , per esempio questo:
    Codice:
    location.replace("http://www.google.com");
    come faccio?

  18. #18
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,187

    Predefinito

    Per il redirect:
    Codice:
    window.location.href= "http://google.com";
    ..per il minuto si.

    Se vuoi fare un ora, invece di scrivere +60 (aggiungengo 60 minuti), puoi usare
    Codice:
     scadenza.setHours(scadenza.getHours() + 1)
    .. Ci sono molti altri metodi per gestire le date. Fai una ricerca in internet...

    Ciao!
    Ultima modifica di alemoppo : 04-05-2011 alle ore 20.36.05

Regole di scrittura

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