Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    passaggio di variabile hidden con metodo POST da swf a popup in codice php

    Salve a tutti,
    Chiedo innanzitutto perdono se questo problema è stato già affrontato e risolto da qualcuno, ma vi assicuro che prima di postare questa richiesta ho navigato per ogni dove, usando query di ricerca differenti, senza ottenere un risultato valido per il mio caso, e ammetto una bassa conoscenza di flash, pur avendo invece una buona conoscenza di php.

    Problema:
    da una pagina web che contiene un swf, devo generare una popup a tutto schermo, passando contemporaneamente una variabile hidden con metodo POST, variabile che mi serve assolutamente ricevere nella pagina php per effettuare controlli di passaggio dalla home che non riesco a risolvere con HTTP_REFERER.
    Il metodo get NON è quindi utilizzabile, dato che il browser poi memorizza la url pagina comprensiva dell' invio della variabile, inficiando il controllo e permettendo a chiunque di aprire la pagina (un login ad area protetta) non in popup come assolutamente necessario, ma in semplice pagina web.

    Questo il codice da me inserito nel primo frame dell' swf per generare la popup.


    codice:
    stop();
    MovieClip.prototype.apriPopup = function (nome, titolo, lar, alt)
    {
            getURL("javascript:window.open('" + nome + "','" + titolo + "','width=" + lar + ",height=" + alt + "copyhystory=yes,directories=no,toolbar=no,location=no,scrollbars=no,status=no,menubar=no,resizable=yes,');void(0);");
    };
    mentre questo è il codice associato al pulsante che richiama la funzione.

    codice:
    on (release) {                
        //sendVars = new LoadVars();
        //sendVars.z ="56363464";    
        //sendVars.send("logga.php", "POST");
        ingresso=apriPopup('logga.php?z=56363464','ingresso','1024','768')    
    }
    Come si evince, il passaggio di $z (variabile di controllo) avviene ora come ora in metodo GET.
    Altrettanto si evince che ho tentato con il metodo sendVars, che sì, funziona, ma che genera una semplice pagina non in popup (ed infatti ho poi spostato in commento il codice).

    A voi la parola, e ancora mi scuso se la soluzione sarà mostruosamente banale.

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    E' un problema abbastanza particolare, che a prima vista ti direi che non è convenzionalmente risolvibile. Per quanto mi riguarda l'ho risolto usando le sessioni in php, così una volta effettuato il primo login posso evitare di passare ogni volta i dati di login alla pagina, cosa che oltre ad essere scomoda, è rischiosa da fare anche in POST.
    Nel caso proposto sono abbastanza sicuro (non al 100%) del fatto che non sia possibile passare variabili in post usando il codice per aprire la popup e immagino che tu sia arrivato alla stessa conclusione, visto che ha testato la cosa con il LoadVars che però apre una nuova finestra e non una popup.
    Una possibilità potrebbe esserci se utilizzando il LoadVars richiamassi una pagina (anche solo con sendAndLoad che attiva del codice js da una pagina php (che rimarrebbe nascosta) e a cui lui stesso invia la variabile in questione (anche se probabilmente sarebbe solo un passaggio in più con lo stesso problema).

  3. #3
    Originariamente inviato da and80
    E' un problema abbastanza particolare, che a prima vista ti direi che non è convenzionalmente risolvibile. Per quanto mi riguarda l'ho risolto usando le sessioni in php, così una volta effettuato il primo login posso evitare di passare ogni volta i dati di login alla pagina, cosa che oltre ad essere scomoda, è rischiosa da fare anche in POST.
    Nel caso proposto sono abbastanza sicuro (non al 100%) del fatto che non sia possibile passare variabili in post usando il codice per aprire la popup e immagino che tu sia arrivato alla stessa conclusione, visto che ha testato la cosa con il LoadVars che però apre una nuova finestra e non una popup.
    Una possibilità potrebbe esserci se utilizzando il LoadVars richiamassi una pagina (anche solo con sendAndLoad che attiva del codice js da una pagina php (che rimarrebbe nascosta) e a cui lui stesso invia la variabile in questione (anche se probabilmente sarebbe solo un passaggio in più con lo stesso problema).
    Ti ringrazio per il tuo intervento, anche e soprattutto per il fatto da te citato, ovvero che non esista alcuna possibilità lato codice di passare dati post di questo genere a una popup.

    Avendo visto la facilità con la quale si generano form di invio dati, pensavo di esser io "in difetto" sempre grazie a una ahimè marginale conoscenza di actionscript.

    Interessante il tuo sistema, che nel mio caso potrebbe essere valido impostando una variabile di sessione nella home per poi controllarne l'esistenza (isSet) e il relativo valore nella pagina logga.php, e negando l'accesso se non viene valorizzata col passaggio dalla homepage.

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Esattamente, in pratica nella verifica controlli se esiste una sessione e se esiste verifichi che i dati di sessione corrispondano a quelli di login, se non esiste controlli se ci sono dati in POST che corrispondo a quelli di login e puoi andare avanti oltre a creare la sessione che ti servirà per il resto della navigazione.

  5. #5
    Uhm.... pensandoci su però mi viene in mente un caso in cui un utente, casualmente o meno, riesce a bucare il controllo:

    1) apre la home (generando la stringa di sessione che per impostazione non modificabile del php_ini del mio server web, cioè 0, si cancella (se non distrutta lato codice) alla chiusura del browser)

    2) apre la pagina di login non passando dall' swf e inserendo la url nella barra degli indirizzi.
    La variabile di sessione è valorizzata, e quindi il controllo viene bypassato e nuovamente mi trovo punto a capo.

    Hai qualche suggerimento?

  6. #6
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Devi verificare che nella sessione siano registrati correttamente i dati di login e confrontarli con quelli che presumibilmente avrai salvato in una tabella dentro a un database, a quel punto anche se esiste la sessione, se questa non ha valori autenticati, è una sessione perfettametne inutile.

  7. #7
    Ho risolto

    Inutile dirti che ti ringrazio davvero per lo stimolo di riflessione, era un tot che mi scervellavo per risolvere questa condizione.

    Posto la semplice soluzione, per aiutare qualcuno che si possa trovare con le mie medesime esigenze.

    Ho effettuato le prove sul problema da me riportato prima in seconda battuta (apertura successiva della pagina di login in finestra blank dopo aver aperto la homepage), e il metodo corretto per risolverlo è il seguente, banalissimo:

    1) aprire una sessione nella home, e valorizzare una variabile di sessione a piacere con un valore a piacere.
    session_start();
    session_unset();
    session_destroy();
    session_start();
    (creo una nuova sessione, la unsetto e la distruggo prima di creare la definitiva per evitare persistenze nel server della sessione precedente).

    2) nella pagina di login, inserire un session_start() per la propagazione della sessione, controllare l'esistenza della variabile di sessione valorizzata (e far fare i necessari redirect),
    e quindi unsettare la sessione e distruggerla.
    session_unset();
    session_destroy();

    Con questo succede che:

    a) se un utente prova ad accedere subito alla seconda pagina di login, viene creata una sessione con un SID, ma senza nessuna associazione della variabile di controllo, sessione che viene poi distrutta, la condizione di controllo viene rispettata quindi e il controllo rimane funzionale.

    b) se un utente apre in qualsiasi ordine un' istanza della homepage e poi/prima un' istanza della pagina di login, si aprono due sessioni, (ho testato la differenza tra i due SID) ciascuna con un differente SID, ma essendo la variabile di controllo associata solo ad una (quella della homepage), il controllo persiste nella sua validità.

    Perdonami se ho ribadito dei concetti banalissimi, ma ho ritenuto utile chiarire il sistema.

  8. #8
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Hai fatto benissimo

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.