Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549

    session e problema particolare

    salve.
    tento di spiegarmi; ho una pagina a.php che contiene:

    Codice PHP:
    <? php
    session_start
    ();
    ..... 
    tanto codice php
    .....
    .....
    $_SESSION["messaggioEmail"]=$messaggio;
    ....
    .... 
    tanto condice php
    ....
    ?>
    <form action="paginaesterna.php">
    ...... form html
    .......
    e una pagina b:

    Codice PHP:
    <? php
    session_start
    ();
    ?>
    <html>
    <body>
    ..... tanto html
    .....
    .....
    <?php
    ...
    ....
    $messaggio.=$_POST["body"];
    $messaggio.=$_SESSION["messaggioEmail"];
    ....
    .... 
    tanto condice php
    ....
    ?>
    in pratica dalla pagina a.php esco dal mio server per andare in quello di una banca (carta-si) per eseguire un pagamento con carta di credito. una volta completata la procedura di pagamento paginaesterna.php ritorna dei parametri con il risultato della transazione e reindirizza il browser a b.php. qui la mia pagina preleva i dati spediti tramite post da paginaesterna.php e li integra con alcune variabili di sessione.
    purtroppo non funziona. la variabile $_SESSION["messaggioEmail"] rimane viva (testando con isset) solo fino a quando non chiamo la paginaesterna.php
    altra informazione: se stampo session_id() in a.php e in b.php le id sono diverse

    da cosa potrebbe dipendere?
    è possibile che per motivi di sicurezza la procedura della banca cancelli tutte le variabili di sessione?
    avete idee o suggerimenti?

    mille grazie
    "homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."

    www.flickr.com/photos/asciella/
    www.lastfm.it/user/qvaioe/

  2. #2
    Se puoi farlo, quando passi al server della banca l'URL su cui deve fare il redirect al termine della transazione, inviaglielo completo di SID.

  3. #3
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549
    grazie per la risposta, ecco le novita:
    all'indirizzo della pagina b.php, cioè quella sui cui reindirizzare una volta finita la procedura della banca, aggiungo l'id della sessione che creo nella pagina a.php.
    percui:
    pagina a.php
    ....
    <input type="hidded" name="reindirizzamento" value="b.php?PHPSESSID=<?php echo session_id();" ?>
    ....
    ora nella pagina b.php una volta che il browser viene reindirizzato ho:
    <?php
    session_start();
    echo session_id();
    ......
    ?>
    il risultato è che la session_id stampata è diversa da quella che avevo creato nella pagina a.php
    noto anche che nella barra dell'indirizzo del browser l'indirizzo b.php?PHPSESSID ha il numero si sessione creato da me nella pagina a.php.

    da quanto ne so, quando inizio una sessione con session_start(); questa prima cerca nei cookie e poi nelle variabili get se c'è PHPSESSID; se non lo trova oppure non trova il file di riferimento ne crea una nuova.
    dal momento che PHPSESSID esiste significa che non trova il file di riferimento, perciò sono portato a pensare che la procedura esterna cancella la mia sessione per crearne una nuova.

    sarà così?

    mille grazie
    "homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."

    www.flickr.com/photos/asciella/
    www.lastfm.it/user/qvaioe/

  4. #4
    Prova ad utilizzare la costante SID al posto di "PHPSESSID=<?php echo session_id(); ?>".

  5. #5
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549
    come si usa?
    devo fare in questo modo: b.php?SID=<?php echo SID?>
    "homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."

    www.flickr.com/photos/asciella/
    www.lastfm.it/user/qvaioe/

  6. #6
    Estratto da http://www.php.net/manual/it/ref.session.php :
    SID può avere la forma di session_name=session_id o può essere una stringa vuota.
    b.php?<?php echo(SID); ?>

  7. #7
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549
    non funziona l'iterpolazione dell'indirizzo;
    io ho scritto questo:
    Codice PHP:
        <input name="ANNULMENT_URL" type="hidden" value="annullamento.php?<?php echo(SID); ?>" id="ANNULMENT_URL" />
    ma quando vengo reindirizzato l'indirizzo è http:.......annullamento.php?

    dove sbaglio?
    "homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."

    www.flickr.com/photos/asciella/
    www.lastfm.it/user/qvaioe/

  8. #8
    La costante SID è vuota solo nel caso in cui la sessione non sia stata avviata. Sei sicuro di avviare correttamente la sessione?
    In alternativa prova:

    annullamento.php?<?php echo(session_name() . "=" . session_id()); ?>

  9. #9
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549
    si che la avvivo. infatti quando ho provato con
    ...annullamento.php?PHPSESSID=<?php echo session_id()?>
    ha funzionato; annullamento.php?PHPSESSID=ee0ead0a4007e60e20b7d66 8511fbd94
    "homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."

    www.flickr.com/photos/asciella/
    www.lastfm.it/user/qvaioe/

  10. #10
    Utente di HTML.it L'avatar di AvOJaromil
    Registrato dal
    Feb 2006
    residenza
    laddove si stagiona formaggio dentro a dei grossi buchi di tufo
    Messaggi
    549
    ho letto che la SID contiene la stringa PHPSESSID=idsessione........ solo nel caso siano disattivati i cookie (fonte:http://www.allwebfree.it/php_sessioni.php) comunque ancora niente.
    la session id è presente solo fino a quando non chiamo la procedura esterna fornita da carta-sì.
    quindi se qualcuno ha idee oppure conferma il mio dubbio (e cioè che la procedura di carta-si elimina le mie variabili di sessione)... io leggo volentieri.


    grazie mille
    "homer sei tonto come un mulo e due volte più brutto. se uno sconosciuto ti offre un passaggio tu devi accettarlo..."

    www.flickr.com/photos/asciella/
    www.lastfm.it/user/qvaioe/

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.