webapp e sessioni

ciao!

una info rapida: Xojo nelle webapp gestisce in modo automatico le sessioni (soprattutto nel caso in cui lo stesso utente entri da due device diversi) o devo gestirle io?

nello specifico: io gestisco in una variabile string il riferimento ordine b2b in corso (nella open dell’app viene inizializzata a null e valorizzata con il primo articolo ordinato).
se lo stesso utente entra contemporaneamente con un secondo device, magari connesso alla stessa wi-fi, viene creata una nuova variabile (come dovrebbe essere) o si prende quella della sessione sull’altro device?

la variabile di tipo public property ed definita nella web page dell’ordine.

ciro

Ogni sessione ha il suo ambiente separato.
Devi essere tu che gestisci l’ambiente dell’utente attraverso un file / tabella / database dove registri ingressi e “carrelli della spesa” per condividere tra sessioni le informazioni che vanno condivise.

Marco

no no, io voglio che nessuna info venga condivisa tra sessioni, volevo solo la conferma che il valore assegnato ad una variabile in una sessione diverso da quello assegnato alla stessa variabile in un altra sessione contemporanea…(es. altro utente che si loggato)

c

C’E’ QUALCOSA CHE NON VA!!!

IO USO DELLE PROPERTY IN QUESTA MANIERA, sono impostate a PUBLIC perch le richiamo in varie parti dell’app e non solo dove sono definite

sono entrato con un utente e le ho valorizzate (nello specifico, OrdineSel assume il numero del nuovo ordine B2B iniziato)

sono entrato con un secondo utente in contemporanea (login diverse) ed ho iniziato un secondo ordine.

se modifico qualcosa del primo utente, vedo le variazioni sul secondo!!! ma non dovrebbero assumere valori diversi in base alla session??? aiutatemi altrimenti cosi nn va bene…

grazie, ciro

La cosa mi sembra strana e poco probabile.
Probabilmente hai fatto qualche operazione per cui le variabili vengono impostate in ogni caso?

In realt non differente da avere finestre diverse ma basate sulla stessa definizione in una app desktop. Ognuna una istanza con valorizzazioni diverse a meno che tu non faccia diversamente…

ok antonio, verifico meglio nel codice…

putroppo l’anomalia random e si presente con due utenti (uguali o diversi) contemporaneamente in attivit nella web app (per attivit intendo insert,update, delete di record nel db).

Ciao a tutti,

penso di aver un problema analogo o cos credo.

nella mia web app ho definito un modulo con delle variabili globali all’interno memorizzo il codice dell’utente che si collega alla mia web app, ora se ho 2 sessioni la stessa variabile viene sovrascritta e quando vado a fare un update sul db facendo una select con il codice utente mi scrive i dati dell’ultimo utente che si collegato.
Pensavo che ad ogni sessione prendesse le variabili globali e le tenesse in memoria…

Non so se mi sono spiegato bene
Come posso risolvere?

Grazie sempre
Enrico

La variabile definita a livello di app globale e comune a tutte le sessioni.
La variabile definita a livello di sessione propria di ogni singola sessione (di ogni singolo utente).
Nelle varie pagine della app devi fare riferimento alle variabili definite nella sessione per avere la certezza che ogni utente veda ci che suo.

Ciao

Marco

Ciao Marco infatti stavo giusto facendo questo, o almeno penso credo :
nel form di login ho definito public la variabile del codice utente e nelle altre form faccio riferimento a questa variabile.

Es.: frm_login variablile cod_ute
frm_inserimento dove vado a fare la select uso frm_login.cod_ute

E’ giuto cos?

Grazie
Enrico

stessa cosa, ho una webpage login con public id e pwd cosi come nella web page ordinecliente il riferimento all’ordine.
non ho alcuna variabile sotto app, n sotto session

dovrebbe essere giusto cosi o no? ossia le variabili definite sotto le webpages (public o private) sono a livello di sessione o no?

thx ciro

Ciao io con la soluzione sopra ho risolto.

ciao

se guardi la mia foto poco sopra, gi faccio cosi, ad es.

ordinecliente.ordinesel se voglio riferirmi a quella variabile
che a volte come se un utente faccia riferimento al ordinesel di un altro utente contemporaneamente presente sull’app

Sarebbe meglio se il codice nelle web page usasse delle variabili di session.

quindi session.nomeutente = username.text

e poi nelle altre pagine si fa riferimento a session.nomeutente.

Inoltre sarebbe bene definire le web pages senza “implicit instance” attivata.
Quando si ha bisogno di una pagina la si carica in memoria usando anche qui un istanza della pagina definita nella session.

Session.WebPaginaPrincipale = New WebLogin Session.WebPaginaPrincipale.Show

La implicit instance fa si che all’attivazione di una nuova sessione sul browser le pagine con quella propriet attiva vengano caricate in memoria sul server, mentre magari non servono subito tutte.

ho capito ma dovrei spostare tutte le variabili sotto session cosi