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