Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 23 su 23
  1. #21
    modifica
    - aggiunta funzione per cancellare tutti i cookies
    - migliorata la funzione per visualizzare i cookies

    Codice PHP:
    /*
    USO ###############
    if(SrCmndCkes_Leggi('nome')==null) ...
    // restituisce il valore, se il cookie non c'è restituisce "null"; se ne sono presenti più di 1 mostra il primo

    if(SrCmndCkes_Scrivi('Nome del Cookie' [,'Valore in stringa'] [,'UdM: anni/mesi/giorni/ore/minuti/secondi/GMT: se non specificato è temporaneo', 'tempo'] [,'path: "/" per tutto "" per attuale e figli'] [,'Domain'] [,'Secure: per criptare basta "1" o "secure" mentre vuoto o altro per lasciare così'])) alert('Scrittura non riuscita');
    // restituisce TRUE o FALSE a seconda che sia avvenuta o no correttamente la scrittura; la mancanza del valore comporta la cancellazione del cookie, la mancanza dei parametri tempo genera un cookie di sessione, il path "/" è sempre consigliato

    if(SrCmndCkes_Cancella('nome' [,'path: "\" per tutto "" per attuale e figli'] [,'Domain'])) alert('OK'); else alert('Ancora No');
    // restistuisce TRUE o FALSE; FALSE significa che cmq un cookie con quel nome c'è ancora, e ciò può essere perchè le proprietà non coincidono o perchè ce ne erano più di uno con lo stesso nome

    if(SrCmnmCkes_CancellaTutti()) alert('Cookie cancellati'); else alert('Sono rimasti ancora dei cookie');
    // restituisce TRUE o FALSE; FALSE significa che dei cookie sono ancora presenti, probabilmente perchè le proprietà non coincidono

    if(SrCmndCkes_Visualizza(['nome'])) alert('Il cookie esiste'); else alert('Il cookie non esiste');
    // mostra alert con contenuto di tutti i cookie, mettendo in risalto quello eventualmente indicato, con il conteggio delle ripetizioni; restistuisce TRUE, a meno che l'eventuale cookie indicato non esista allora restituisce FALSE; 

    NOTE ##############
    LETTURA: non è possibile leggere le singole proprietà: expires, path, domain , secure
    ELIMINAZIONE: non è possibile eliminare tutto insieme con "document.cookie='';", i browser cancellano i cookie nel momento preciso in cui vengono SCRITTI con un qls "expires" scaduto
    o nel momento in cui RECUPERANO i cookies con "document.cookie" e trovano che "expires" è scaduto o non esiste; c'è chi per cancellare scrive la scadenza "Thu, 01 Jan 1970 00:00:01 GMT" ma se qualcosa è errato, mentre NN ricoscosce abbastanza tutto IE no, e quindi questo invece che cancellare un cookie ne scrive uno che non scade mai;
    non è vero che IE cancella i cookie se si inserisce in contenuto vuoto, è solo un'apparenza, poichè tale contenuto è salvato come "nome;" che quindi nella lettura non viene trovato perchè si cerca "nome=;" quindi sembra cancellato invece c'è, occupa spazio, ed è inutilizzato

    */

    function SrCmndCkes_Leggi(CookieNome){
        if (
    CookieNome.length==0) return null;
        var 
    PosizioneIniziale document.cookie.indexOf(CookieNome+"=");
            if (
    PosizioneIniziale == -1) return null;
            
    PosizioneIniziale += CookieNome.length+1;  // restituisce la posizione del primo carattere del valore della variabile-cookie
        
    var PosizioneFinale document.cookie.indexOf(";",PosizioneIniziale);
            if (
    PosizioneFinale == -1PosizioneFinale document.cookie.length;  // serve perchè se il cookie è l'ultimo non avrà ";"
        
    return unescape(document.cookie.substring(PosizioneIniziale,PosizioneFinale));
    }


    function 
    SrCmndCkes_Scrivi(name,value,expiresUdM,expires,path,domain,secure){
        if (!
    name) { return false }
        if (!
    value) { return SrCmndCkes_Cancella(name); }  // se è vuoto non si può fare la scrittura purtroppo, perchè, mentre in NN esiste il cookie vuoto "nome=;", in IE viene scritto "nome;" e quindi al check non risulta e inoltre occupa spazio
        
    if ((expiresUdM && expires) && (expiresUdM!='GMT')) {
            var 
    ExpiresMillisec ExpiresDate Oggi = new Date();
            switch (
    expiresUdM) {    // calcola i JS-millisecondi del momento di scadenza
                
    case "anni":    ExpiresMillisec=Oggi.getTime()+expires*365*24*60*60*1000; break;
                case 
    "mesi":    ExpiresMillisec=Oggi.getTime()+expires*31*24*60*60*1000; break;
                case 
    "giorni":  ExpiresMillisec=Oggi.getTime()+expires*24*60*60*1000; break;
                case 
    "ore":     ExpiresMillisec=Oggi.getTime()+expires*60*60*1000; break;
                case 
    "minuti":  ExpiresMillisec=Oggi.getTime()+expires*60*1000; break;
                case 
    "secondi"ExpiresMillisec=Oggi.getTime()+expires*1000; break;
                default:        
    ExpiresMillisec=Oggi.getTime()+expires;  // ha poco senso ma qlcs ci andava messo
                
    }
            
    ExpiresDate.setTime(ExpiresMillisec);   // converte JS-millisecondi in Date
            
    expires ExpiresDate.toGMTString(); }  // converte Date in GMT-stringa
        
    secure = (secure=="1" || secure==|| secure=="secure") ? "";
        
    document.cookie name "=" +escape(value) +
                ( (
    expiresUdM && expires) ? "; expires=" expires "") +
                ( (
    path) ? "; path=" path "") + 
                ( (
    domain) ? "; domain=" domain "") +
                ( (
    secure) ? "; secure" "");

        if (
    SrCmndCkes_Leggi(name)==null && secure!=1) { return false } else { return true }
    }


    function 
    SrCmndCkes_Cancella(CookieNomeCookiePathCookieDomain){
        var 
    DoveSiTrovaPrima document.cookie.indexOf(CookieNome);
        if(
    DoveSiTrovaPrima==-1) {   // se non c'è si taglia corto
            
    return true;
        } else {
            if( 
    CookiePath &&  CookieDomain) { SrCmndCkes_Scrivi(CookieNome,'cancellato','anni',-1,CookiePath,CookieDomain); }  // dovevo inventare un contenuto sennò saltava la scrittura
            
    if( CookiePath && !CookieDomain) { SrCmndCkes_Scrivi(CookieNome,'cancellato','anni',-1,CookiePath); }
            if(!
    CookiePath &&  CookieDomain) { SrCmndCkes_Scrivi(CookieNome,'cancellato','anni',-1,'',CookieDomain); }
            if(!
    CookiePath && !CookieDomain) { SrCmndCkes_Scrivi(CookieNome,'cancellato','anni',-1); }
            var 
    DoveSiTrovaDopo document.cookie.indexOf(CookieNome);
            if(
    DoveSiTrovaPrima!=DoveSiTrovaDopo) { return true } else { return false // se Prima<>Dopo vuol dire che qualcosa è stato fatto; si guarda a questo e non alla semplice verifica di lettura perchè in presenza di 2 cookie omonimi la verifica fallirebbe
        
    }
    }


    function 
    SrCmndCkes_CancellaTutti(){
        
    stringa=document.cookie.split(";");
        for(
    i=0;i<stringa.length;i++) {
            var 
    c=stringa[i].split("=");
            if(
    c[0]) SrCmndCkes_Cancella(c[0],'/');
            };
        return (
    document.cookie.length==0);
    }


    function 
    SrCmndCkes_Visualizza(CookieNome){
        
    // recupera info su tutti i cookie
        
    testo'STRINGA COOKIES\nContenuto= \"' +unescape(document.cookie)+ '\"\n\n';
        
    esito=1;
        
    // recupera info sul cookie richiesto
        
    if(CookieNome) {
            
    cloni=0;
            
    valore=SrCmndCkes_Leggi(CookieNome);
            if(
    valore==null){
                
    esito=0;
            }else{
                
    i=-1;
                do { 
    i=document.cookie.indexOf(CookieNome+"=",i+1); if(i!=-1cloni++; } while(i!=-1);
                
    testo+='SINGOLO COOKIE\nNome= \"' +CookieNome'\"\nPrimo Valore= \"' +valore'\"\nRipetizioni= '+cloni;
            }
        }
        
    // produce output
        
    alert(testo);
        if(
    esito==1) return true; else return false;

    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  2. #22

    scusate la tarda intromissione XD

    Se volessi farsì che si senta solo una musica dell'ultima pagina dov'è che devo intervenire nel codice del cookie ?

    Sono un niubbio delle faccende dei cookie ! Quindi non ne so meno di niente.!
    E poi dove devo metterlo sulla pop up o sulla pagina che crea la popup ?

  3. #23
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non si riesumano le discussioni vecchie per duplicare quesiti gia' posti in discussioni tue
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.