Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it L'avatar di rby
    Registrato dal
    Feb 2010
    Messaggi
    65

    Cookie.expires non funziona con IE ma con Firefox

    Ragazzi,
    sono diversi giorni che sto perdendo la testa, e non riesco a venirne a capo.
    Fino ad oggi non avevo mai utilizzato i cookies nella mia applicazione, e quindi per me è un campo nuovo. Utilizzo Firefox quando scrivo in Javascript lato client in quanto è molto utile col suo debug.
    Il problema che mi sono posto è questo : Voglio memorizzare alcuni parametri nei cookies per riutilizzarli successivamente, anche dopo aver chiuso il browser oppure la macchina. Mi interessa solo che i dati siano salvati a livello di macchina. Per questo utilizzo le istruzioni :

    codice:
    '  Creo i Cookies :
       response.cookies("www.miosito.it")("Ditta")          = nDitta
       response.cookies("www.miosito.it")("FatturaIniziale")= nFatturaIniziale
       response.cookies("www.miosito.it")("FatturaFinale")  = nFatturaFinale
    
    tutto bene, sia per IE che per Firefox nella sessione corrente, ma appena cerco di salvare i cookies per + giorni con l'istruzione response.cookies().expires mentre Firefox lo fa, IE perde il contenuto dei Cookies anche nella sessione attuale.
    Alla fine ho dovuto adottare l'escamotage seguente per evitare il salvataggio (che in realtà cancella i cookies scritti) in caso di Explorer :

    codice:
    '  IE Internet explorer (IE 11 risponde qualificandosi Mozilla)
    '  non supporta la clausola expires. 
    '  Se la si usa, non registra i cookies nemmeno per la sessione
       if sBrowser <> trim("Mozilla") then
    '''      Response.Write("<p>sBrowser = " & sBrowser & "<br />")
          response.cookies("www.miosito.it").expires           = Date + 365
       end if
    E' vero che IE non supporta i cookies ??
    Oppure sono io che sbaglio nell'impostarla ??
    Ho provato tantissimi modi per fornire la data corretta di expire ma il risultato è stato sempre lo stesso : NULLA !!!
    Mi sapete aiutare ??
    Grazie

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Se si parla di IE 11 è troppo recente per porsi il problema (conoscendo Microsoft le cose cominciano a funzionare decentemente dopo la terza/quarta relase) se invece è un problema generale IE prova ad impostare la scadenza per ogni chiave

    P.S. Nel browser i cookie sono attivi giusto? E non hai attivo navigazione anonima vero?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di rby
    Registrato dal
    Feb 2010
    Messaggi
    65
    Come dicevo, ho fatto un mare di prove.
    1) Ho provato inserendo la clausola Expire nelle singole righe, ma veniva rifiutata (mi sembra di ricordare in fase di compilazione).
    2) I Cookies sono attivi in quanto se ometto la riga con expires vengono registrati e se richiamo la pagina li ritrovo, non solo, in Firefox funzionano regolarmente anche con la clausola expires.
    3) Non so come impostare la navigazione anonima, ma al punto 2 ho riportato i casi in cui i cookies funzionano.

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    secondo me c'è un'errore procedurale.

    cosa vuol dire "ma appena cerco di salvare i cookies per + giorni"?

    come procedi?

  5. #5
    Utente di HTML.it L'avatar di rby
    Registrato dal
    Feb 2010
    Messaggi
    65
    Se hai notato nella seconda parte in cui riporto il codice, ho inserito l'istruzione
    codice:
    (response.cookies("www.miosito.it").expires =Date+365)
    che serve per fare in modo che il cookie sopravviva alla chiusura del browser. In questa c'è la clausola expires che imposto a Date+365 che dovrebbe fare memorizzare il cookie e scadere dopo 365 giorni dalla data corrente. Questo funziona per Firefox, ma ciò non avviene per IE. Che in firefox funziona ne sono certo perché c'è una funzionalità in cui posso consultare i cookies ed in cui verifico la data di scadenza. Invece con IE ho dovuto inserire le seguenti istruzioni per verificare la presenza o meno dei cookies :
    codice:
    '  Queste istruzioni servono per mostrare, se ci sono, tutti i cookies
    Response.Write("<p>sBrowser = " & sBrowser & "<br />")
    Dim x,y
    For Each x in Request.Cookies
        Response.Write("<p>")
        If Request.Cookies(x).HasKeys Then
    '      I Cookies hanno + valori x lo stesso url
            For Each y in Request.Cookies(x)
                Response.Write(x & ":" & y & "=" & Request.Cookies(x)(y))
                Response.Write("<br />")
            Next
        Else
    '      Cookie con un sol valore
           Response.Write(x & "=" & Request.Cookies(x) & "<br />")
        End If
        Response.Write "</p>"
    Next
    Utilizzando questo loop nel caso in cui non uso Expire dopo l'istruzione che crea i cookies li ritrovo, ma non avendo specificato una scadenza quando chiudo e poi riapro il browser sono spariti. Se invece abilito l'Expire i cookies vengono memorizzati, ma sono vuoti.
    Provare x credere.
    Ah Explorer che io uso è Internet Explorer 11

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    hai fatto vedere come recuperi i valori, non la procedura di scrittura e d'insieme.
    secondo me è lì che qualcosa non va. ad esempio è possibile che, mentre tu pensi di aver scritto il cookie, subito dopo tu lo stia cancellando o facendo scadere. un browser potrebbe fare leggere/mostrare/inviare un'istruzione prima di un'altra

    ricordo che (in mie prove) un cookie appena generato e letto dalla pagina stessa che lo generava, se visto con IE(8) non potevo recuperare il valore. mentre con altri browser si.
    eppure il cookie era popolato

    per questo parlo di procedure

  7. #7
    Utente di HTML.it L'avatar di rby
    Registrato dal
    Feb 2010
    Messaggi
    65
    In realtà non è una sola pagina Asp che fa tutto, ma sono due.
    La prima non fa altro che prendere da cookie ed eventualmente da video i limiti su cui dovrà lavorare la seconda e passarglieli.
    La seconda memorizzerà i limiti ed elaborerà un foglio excel estratto secondo i limiti impostati dalla prima.
    Quando richiamo la prima una seconda volta, mi aspetto di trovare tra i cookies i limiti impostati precedentemente dalla seconda pagina.
    Il tutto funziona se utilizzo Firefox, ma se utilizzo IE la memorizzazione fallisce.
    Per questo, ho inserito nella pagina che elabora il foglio excel l'if che interroga il nome del Browser (fatto al login e memorizzato nella variabile di sessione Session.Contents("Browser")) e se la trova diversa da "Mozilla" (IE) imposta la data di scadenza. Così evito di cancellare i cookies appena creati.
    Anche se nella prima pagina, quella che legge i cookies, ci sono due Javascript che creano i cookies o li cancellano, non vengono usati.
    La creazione viene affidata alla pagina che elabora il foglio excel in modo da salvare i dati se e solo se vengono utilizzati realmente.
    Allego le due pagine leggermente modificate nel nome del sito, ma fedelmente conformi alle originali, contenenti anche tutte le istruzioni commentate che mi sono servite per capire il malfunzionamento.
    @ Vincent.zeno come potrai notare nella seconda pagina ( quella che crea il foglio ed i cookies ) ho provato ad inserire l'istruzione Expire sia prima che dopo la creazione dei cookies, questo perché come dicevi, i browser si comportano autonomamente l'uno dall'altro.
    File allegati File allegati

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    prova a dare un'occhiata

  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,783
    nello zip ci sono due file, quale visualizzi per primo?

  10. #10
    Utente di HTML.it L'avatar di rby
    Registrato dal
    Feb 2010
    Messaggi
    65
    Il primo è Rib_Imposta_Limiti che lancia dopo la pressione del tasto Rib_Excel_fatture

Tag per questa discussione

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 © 2025 vBulletin Solutions, Inc. All rights reserved.