Flash: accesso db tramite filmato

Di: leftist | 26/09/2020 18:51:14
Ciao a tutti,
è il mio primo post in questo forum e spero di trovare aiuto, sono quasi disperato.
Vengo al nocciolo del problema:
ho realizzato un accesso con login e password da un filmato in flash.
Nella timeline ho inserito:
enter.onPress=function()
{
var dati:LoadVars= new LoadVars();
dati.username='username';
dati.userpwd='userpwd';
dati.onLoad=function(ok:Boolean)
{
if(ok)
{
trace(this.risposta);
}
else
trace('ASP error');
}
dati.sendAndLoad('resourcedb/log.asp',dati,'POST');
}
Ho associato al pulsante:
on (release)
{
getURL("resourcedb/log.asp");
}
Orbene, log.asp ha il compito di comprendere la user e la password e mi deve indirizzare ad un'altra pagina accesso.asp, nel caso siano errati i dati mi rin-invia alla pagina index.asp.
La cosa assurda, vi prego aiutatemi, e che se faccio ora la login mi indirizza sempre alla pagina index.asp, questo vuol dire che qualcosina funziona, ma non riconosce i campi input, che ho rinominati username e userpwd.
Forse è qui che sbaglio, ma non ho proprio idea dove!!!
Due precisazioni:
1) i file asp sono sicuramente ok
2) le password sono inserite in una tabella pre-caricata (in MySql)
Spero di essere stato chiaro.
Vi ringrazio anticipatamente.
Ciao

Risposte



Ciao leftist,
capisco quello che succede ma non capisco come volevi fare login...
hai due eventi per un pulsante, il primo viene scatenato alla pressione e il secondo al rilascio.
L’evento che viene scatenato alla pressione esegue una serie di operazioni che riassumo:
- crea un oggetto LoadVars
- stipa due variabili chiamate username e password nell’oggetto appena creato
- invia le due variabili con metodo post alla pagina log.asp
- se arriva una (qualunque) risposta traccia il contenuto della variabile chiamata risposta
- se non arriva una risposta traccia la stringa “ASP error”
L’evento che viene scatenato al rilascio del mouse carica la pagina log.asp senza inviare nessuna variabile.
[HR]
Chiaramente non fa differenza che username e password siano esatti o errati: questo script compie sempre le stesse azioni!
La prima volta sarà soddisfatto perché, giusta o sbagliata, una pagina arriva.
La seconda volta non invia niente, quindi il tuo codice ASP con tutta probabilità non viene eseguito e tu vedi la stessa pagina.
Quello che devi fare è modificare il codice ASP.
Quando ricevi username e password e sono esatti puoi impostare un cookie, così al successivo caricamento della pagina, anche se non mandi più le variabili, controlli che l’utente sia loggato cercando quel cookie.

Di: Professore | 26/09/2020 18:51:14


Risposta super esaustiva, peccato che nel precedente post mi sono dimenticato di fare una premessa: sono completamente ignorante in flash.
Detto questo, ho compreso cosa dici, purtroppo non posso modificare la pagina log.asp, non è di mia proprietà e non ho l'accesso, più complicato di cosi non saprei.
Mi tocca intervenire sul filmato.
A questo punto chiedo "spudaratamente" aiuto, se hai consigli e se è possibile modificare lo script in flash sono pronto alla creazione di un busto in oro
Grazie 1000

Di: leftist | 26/09/2020 18:51:14


Allora...
visto che ti arriva una pagina all’interno dell’oggetto LoadVars potresti controllare il contenuto di questa pagina per valutare se fare il redirect oppure no...
Prima di tutto sostituisci trace(this.risposta); con trace(this.toString()); per leggere a video cosa ti è arrivato.
Poi cerca una porzione di testo che sia presente solo nel caso in cui il login è andato a buon fine.
Controllando che questo testo sia arrivato puoi dire a Flash di reindirizzarti ad un’altra pagina, altrimenti puoi mostrare un messaggio di errore.
Non è una soluzione molto sicura (tutt’altro) e il tutto andrebbe riprogettato, ma visto che non hai la pagina log.asp non possiamo fare altro.

Di: Professore | 26/09/2020 18:52:14