Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333

    Cookies, si aggiornano con un ciclo di ritardo

    Certamente sto annegando in un bicchiere di acqua,

    ho isolato su un form singolo questa semplicissima funzioncina di test per capire il problema
    ma non ci arrivo
    codice:
        Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
            Dim strNow As String
            strNow = Now()
    
            Response.Cookies("KMLB")("KAu") = strNow
            Response.Cookies("KMLB").Expires = DateTime.Now.AddMinutes(1)
    
            Response.Write("La Variabile --- " & strNow & "</br>")
            Response.Write("Il Cookie ------ " & Request.Cookies("KMLB")("KAu") & "</br>")
    
        End Sub
    Praticamente:

    -prendo un valore Stringa che corrisponde al momento attuale
    (lo ho scelto perchè varia ad ogni secondo)
    - Lo scrivo in una variabile (strNow) per "congelarne" il valore
    - Scrivo la variabile nel Cookie (KAu)
    A questo punto la strNow e KAu dovrebbero avere un valore identico (Sbaglio ???)

    invece se li vado a leggere separatamente vedo che:
    -La variabile strNow va bene
    -Il Cookie KAu rimane al valore della precedente variabile e si aggiornera
    solamente se clicco ulteriormente sul Button

    Riesco ad avere i valori allineati solo dopo 1 minuto di pausa quando il Cookie mi muore

    Grazie a chi mi aiutera

    Mancini

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Response.Cookies("KMLB")("KAu") = strNow, crea il cookie e lo spedisce al client.

    request.Cookies("KMLB")("KAu") legge il cookie ricevuto dal client, non quello creato nel server.
    Pietro

  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da pietro09 Visualizza il messaggio
    Response.Cookies("KMLB")("KAu") = strNow, crea il cookie e lo spedisce al client.
    Fino a qui ci arrivo il Cookie viene creato nel Server e spedito al Client
    in una cartella che dipende dal Browser,

    Nel mio caso spedisce in :
    C:\Users\xxxy\AppData\Roaming\Microsoft\Windows\Co okies


    Quote Originariamente inviata da pietro09 Visualizza il messaggio
    request.Cookies("KMLB")("KAu") legge il cookie ricevuto dal client, non quello creato nel server.
    Qui invece non arrivo a capire (certamente per mia ignoranza) la differenza cha c'è
    fra quanto ricevuto dal Client e quanto creato nel Server

    Ti chiederei di essere un po più chiaro

    Grazie





    Io intanto avevo provato a fare questi "esperimenti"

    codice:
    <%
     Dim strNow As String
     strNow = Now()
                            
     Response.Cookies("KMLB")("KAu") = strNow 
     Response.Cookies("KMLB").Expires = DateTime.Now.AddDays(1)
    %>
    <%              
     Stop
    
     Response.Write("La Variabile --- " & strNow & "</br>")
     Response.Write("Il Cookie ------ " & Request.Cookies("KMLB")("KAu") & "</br>")
                            
     Stop            
    %>
    

    e nei 2 Stop vado a controllare il Cookie nel Client (nella cartella citata sopra) e in effetti diventa lampante che il Cookie NON si aggiorna se non alla fine totale dello Script (dopo il 2° Stop)

    Non so come risolverla

    Grazie

    .





    Ultima modifica di nman; 25-07-2016 a 15:20

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    quando scrivi:
    Response.Write("Il Cookie ------ " & Request.Cookies("KMLB")("KAu") & "</br>")

    Tu stai leggendo un cookie ricevuto dal client. Quello che hai spedito al client (l'istruzione precedente), il client non lo ha ancora ricevuto, non lo ha spedito, dunque non lo puoi leggere
    Pietro

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Non vorrei cantare vittoria troppo presto ma sembra che ho trovato l'arrangiamento

    La da osservazioni fatte il problema NON si poneva se il Cookie era inesistente
    (quindi solamente al 1° ciclo)

    Ho aggiunto una riga in fondo che dopo l'utilizzo mi elimina il Cookie
    in modo che si parta sempre come se fosse il 1° ciclo

    mi resta un po di amaro in bocca perché non capisco il motivo per cui
    la sovrascrittura di un Cookie sia più difficoltosa della creazione da nuovo

    Ma sono solo ai miei primi vagiti di ASP

    Grazie per l'aiuto

    Mancini



    codice:
    <% 
     Dim strNow As String
     strNow = Now()
    
    
     Response.Cookies("KMLB")("KAu") = strNow
     Response.Cookies("KMLB").Expires = DateTime.Now.AddDays(1)
    
        
     Response.Write("La Variabile --- " & strNow & "</br>")
     Response.Write("Il Cookie ------ " & Request.Cookies("KMLB")("KAu") & "</br>")
    
            
     ' dopo averli utilizzati li elimino in modo che al prossimo cicli si parta
     ' senza Cookie vecchi e cosi funziona
     Response.Cookies("KMLB").Expires = DateTime.Now.AddMinutes(-1)
    %>
    

    Ultima modifica di nman; 25-07-2016 a 19:26

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    devo ammettere che adesso sono io che non ho capito. Io uso i cooki per mantenere lo stato. Non capisco il tuo uso









    Pietro

  7. #7
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da pietro09 Visualizza il messaggio
    ..... Non capisco il tuo uso .......
    Hai ragione non avevo detto nulla del contesto globale della applicazione,

    Cerco di essere telegrafico,
    la premessa è che ho usato pochissimo ASP


    Due siti distinti sullo stesso IIS (chiamiamoli SitoA e SitoB )
    Quindi stesso percorso di base e dominio. i Cookies si leggono fra di loro

    Siamo nel SitoA con Login effettuato e il riscontro è la presenza di una variabile di sessione (VarSes) valorizzata con il Id dell'utente (Quindi c'è anche un DB)

    Nel SitoA ho un pulsante (cmdA) che fa il Response.Redirect al SitoB
    Nel SitoB ho un pulsante (cmdB) che fa il Response.Redirect al SitoA

    Ora la pressione su uno qualunque dei 2 pulsanti fa queste cose:

    - mette in un Cookie la VarSes
    - Response.Redirect all'altro Sito

    alla apertura dell'altro sito ho un file Global.asax che alla apertura fa queste cose
    - Request del Cokie
    ------ Se lo trova
    ------------ mette il valore del Cookie nella sua VarSes
    ------------ Elimina il Cookie <--- questo era il pezzo che mancava
    ------------ considera l'utente logato per la navigazione
    ------ Se NON lo trova (sempre il Cookie)
    ------------ Fa un Response.Redirect alla pagina di Login


    Io che con ASP sono appena nato non ho trovato nulla di meglio anzi, se il tema è gia stato superrisolto da "Voi" esperti una dritta in più non mi dispiacerebbe


    Grazie
    Mancini

    .
    Ultima modifica di nman; 25-07-2016 a 21:34

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