Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    email doppia e blocco ricaricamento pagina

    Ciao a tutti,
    Ho una pagina.php che invia una e-mail ma questa viene inviata più volte.
    Ho fatto il log file ed ho potuto verificare che fra l'inizio di esecuzione della pagina e la fine esecuzione la funzione che inva email viene chiamata una sola volta.
    Invece sempre dal log vedo che ci sono più bocchi [inizio esecuzione pagina]...[fine esecuzione pagina] tante quante sono le mail che mi arrivano (due); quindi la pagina viene richiamata più volte.

    Per evitare che queta venga eseguita più volte ho gestito una variabile di sessione "'process_page_ok" sperando che potesse anche prevenire evenuali ritorni alla pagina quando l'utente una volta approdato su di essa continua la navigazione e poi torna indietro con il pulsante BACK.

    Ma a quanto pare sbaglio qualcosa.

    Posto il codice:

    Codice PHP:
    <?php 
     session_start
    ();
     
    ob_start();
     
     if(!isset(
    $_SESSION['process_page_ok']))
         
    $_SESSION['process_page_ok']=0;
     
     if(
    $_SESSION['process_page_ok']==1)
     {
      
    header("Location: ../lib/stop.php");
      exit;
     }

    $destinatario="indirizzo@des.com";
    $oggetto="Prova";
    $testo="Testo html creato da una funzione";

    inviaMail($destinatario$oggetto$testo);
     
    $_SESSION['process_page_ok']=1

    function inviaMail($destinatario$oggetto$testo)
    {

        
    $intestazioni  "MIME-Version: 1.0\n";
        
    $intestazioni .= "Content-type: text/html; charset=shift_jis\n";
        
        
    /* intestazioni addizionali */
        
    $intestazioni .= "From: mittente.com <indirizzo@imittente.com>\n";
        
        return 
    mail($destinatario$oggetto$testo$intestazioni);    
    }

    ?>
    Qualcuno può darmi qualche indicazione sull'invio doppio di email e su come bloccare l'accesso a questa pagina se cambio pagina e poi torno indietro con il pulsante BACK?

    Grazie
    Guidino

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    mail doppia

    Up

    Siate già tutti in vacanza?
    Guidino

  3. #3
    beh, puoi mettere un check su una variabile di sessione per la visualizzazione, se variabile = 0 la mostra altrimenti non te la mostra, quando invia la mail imposti a 1 la variabile e cambi locazione con un header o un location.href .

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    pulsante back

    Grazie della risposta.
    Si, per questo problema dovrò fare un'altra pagina su cui indirizzare dopo l'invio anche se non capisco perchè viene richiamata due volte.

    Ma sul problema del pulsante "indietro" del browser mi sai deire qualcosa?
    "Per evitare che queta venga eseguita più volte ho gestito una variabile di sessione "'process_page_ok" sperando che potesse anche prevenire evenuali ritorni alla pagina quando l'utente una volta approdato su di essa continua la navigazione e poi torna indietro con il pulsante BACK."

    Grazie
    Guidino

  5. #5
    usi lo stesso sistema, crei una variabile di sessione che modifichi quando viene inviata la mail, se la variabile è impostata ad aver inviato la mai l'unica cosa che fa il tuo script è spostarti da qualche altra parte.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Questo lo faccio già impostando la variabilie $_SESSION['process_page_ok']=1

    Poi all'inizio della pagina ne controllo il valore con:

    Codice PHP:
    if($_SESSION['process_page_ok']==1

      
    header("Location: ../lib/stop.php"); 
      exit; 

    ma se navigo e torno alla pagina con il pulsante indietro non vengo indirizzato sulla pagina stop.php indicato nella location.

    Vedi qualcosa di sbalgiato nel codice?

    Grazie
    Guidino

  7. #7
    non in quel punto ma qui

    Codice PHP:
    $_SESSION['process_page_ok']=
    manca il ; alla fine della stringa.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Ti ringrazio ma questo è solo un problema di copia del codice (se mancasse il ; la pagina darebbe un errore di compilazione)

    Il ; nel codice c'è.

    Ti viene in mente qualcosa?
    Guidino

  9. #9
    sinceramente no

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Ti ringrazio molto per la cortesia.

    Suggerimenti di altre persone sono benvenuti.
    Guidino

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.