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

    Come non perdere la SESSIONE se si fa un reindirizzamento ad un server non proprio?

    Ciao a tutti.

    Il problema riguarda un sistema di pagamento on line: dal carrello vado ad una pagina che deve rimandare automaticamente alla pagina della banca. ho una sessione aperta in cui è memorizzato il nome e la mail dell' acquirente.

    La banca fa quello che deve fare e mi ritorna su una mia pagina in cui c'è ancora session_start(), nella speranza che richiami la sessione precedente, ciò però non accade e quindi perdo il nome e la mail dell' acquirente.

    Come si può fare?

    Dipende da un errore concettuale (ovvero non si può sperare che la sessione venga recuperata dopo che si è stati su un server esterno) o da un errore di programmazione (tipo che non dovevo usare header: location per il redirect alla banca)

    Grazie per l'aiuto
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  2. #2
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Se il tutto avviene sulla medesima finestra è un errore concettuale. Controlla il codice.

  3. #3
    Grazie per la risposta... succede una cosa stranissima che non riesco a capire:

    La transazione con la banca va a buon fine e la banca mi rimanda ad una mia pagina che si chiama ad esempio PAGINA1.php

    in questa pagina prendo i dati che mi manda la banca con $_REQUEST e li registro in un database, insieme ai dati che ho mandato io alla banca precedentemente che sono in $_ SESSION. e mando in automatico (con un modo che non conosco impostomi dalla banca cioè scrivo un indirizzo a schermo preceduto da REDIRECT e avviene il redirect) alla pagina PAGINA2.php

    in questa pagina mando una mail di conferma usando i dati in $_SESSION

    ebbene: in PAGINA1.php ci sono solo i dati $_REQUEST e nessun dato $_SESSION, quindi nel database vengono scritti solo i dati della banca e non quelli che avevo memorizzato in sessione prima di mandare la chiamata alla banca, mentre in PAGINA2.php appaiono magicamente i dati che avevo mandato alla banca in $_SESSION ma dei dati che ha mandato la banca nemmeno l'ombra.

    E' complicatissimo da spiegare....

    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Hai verificato che l'id viene trasmesso via i cookie e non via l'URL rewrite? Il cookie c'è e contiene sempre lo stesso valore?

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Non è chiara una cosa.
    La tua PAGINA1.php da chi viene richiamata? Dal server della banca o dal browser dell'utente?
    Perché nel primo caso, è ovvio che non possa avere la sessione dell'utente.

  6. #6
    E' il primo caso, e che sia ovvio è chiaro, il mistero è come mai, PAGINA2, richiamata da PAGINA1 ha le variabili di SESSIONE che mi servivano in PAGINA1 e non quelle che, dichiarate ed usate in PAGINA1 mi servivano in PAGINA2...

    diciamo che ho risolto artificiosamente registrando tutte le cose su database quando ci sono e poi richiamandole quando mi servono... ma sta cosa è un mistero.
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Allora, mi par di capire che pagina2, al contrario di pagina1, viene richiamata dal browser dell'utente, anche se questo punto è poco chiaro e probabilmente è legato a quel meccanismo di redirect che hai descritto in maniera un po' vaga.
    In ogni caso, se le cose stanno così, è altrettanto chiaro per quale motivo una variabile di sessione dichiarata in pagina1 non può essere presente in pagina2: il motivo è lo stesso di prima, essendo diverso il client non può essere condivisa la sessione.

  8. #8
    @carlaravelli

    è chiaro che quello che nella pagina che riceve i dati della banca tu non veda la $_SESSION dell'utente, essendo i client diversi. Una soluzione è gestire le sessioni lato database (di default php usa il filesystem per lo storage delle sessioni) e farsi tornare dalla banca il sessionid associato all'utente nella transazione (se ho ben capito, puoi passarglielo te nella richiesta principale)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.