+ Rispondi alla Discussione
Risultati da 1 a 4 di 4

Messaggio di avvenuto invio mail

Ultimo Messaggio di lucabartoli il:
  1. #1
    User Newbie
    Data Registrazione
    Jan 2013
    Località
    Santhià
    Messaggi
    2

    Messaggio di avvenuto invio mail

    Ciao a tutti,

    Sono nuovo del forum e anche della programmazione php. Ho ereditato la gestione di un sito in cui c'è un form per l'invio della richiesta di informazioni tramite mail che richiama le seguenti istruzioni php. Dato che di php ci capisco poco vorrei chiedervi come e dove inserire un eventuale messaggio "La mail è stata inviata con successo. Grazie per averci contattato" da visualizzare nella pagina index.html. o in una nuova pagina e poi reindirizzare alla index.html. Ho provato a guardare un po' in giro per il web e provato ad inserire le seguenti istruzioni nel codice php ma non viene mai visualizzato niente...

    echo "La mail è stata inviata con successo. Grazie per averci contattato";
    header("refresh:2;url=index.html")


    Potete aiutarmi?
    Grazie.

    <?php


    /* config start */


    $emailAddress = 'miamail@gmail.com';


    /* config end */




    require "phpmailer/class.phpmailer.php";


    session_name("fancyform");
    session_start();




    foreach($_POST as $k=>$v)
    {
    if(ini_get('magic_quotes_gpc'))
    $_POST[$k]=stripslashes($_POST[$k]);

    $_POST[$k]=htmlspecialchars(strip_tags($_POST[$k]));
    }




    $err = array();


    if(count($err))
    {
    if($_POST['ajax'])
    {
    echo '-1';
    }


    else if($_SERVER['HTTP_REFERER'])
    {
    $_SESSION['errStr'] = implode('<br />',$err);
    $_SESSION['post']=$_POST;
    header('Refresh:3; Location: '.$_SERVER['HTTP_REFERER']);
    }


    exit;
    }




    $msg=
    'Nome: '.$_POST['first_name'].'<br />
    Email: '.$_POST['email'].'<br />
    Telefono: '.$_POST['phone_number'].'<br />
    Oggetto: '.$_POST['subject'].'<br />
    IP: '.$_SERVER['REMOTE_ADDR'].'<br /><br />


    Messaggio:<br /><br />


    '.http://www.giorgiotave.it/wikigt/os/Nl2br" title="nl2br è la funzione di php, che inserisce il tag di a capo html
    " target="_blank" class="gal">nl2br($_POST['text']).'


    ';




    $mail = new PHPMailer();
    $mail->IsMail();


    $mail->AddReplyTo($_POST['email'], $_POST['first_name']);
    $mail->AddAddress($emailAddress);
    $mail->SetFrom($_POST['email'], $_POST['first_name']);
    $mail->Subject = "Nuova richiesta di ".$_POST['subject']." da ".$_POST['first_name']." | contact form chef4all.it";


    $mail->MsgHTML($msg);


    $mail->Send();


    unset($_SESSION['post']);


    if($_POST['ajax'])
    {
    echo '1';
    }
    else
    {
    $_SESSION['sent']=1;

    if($_SERVER['HTTP_REFERER'])
    header('Location: '.$_SERVER['HTTP_REFERER']);
    exit;
    }


    function checkLen($str,$len=2)
    {
    return isset($_POST[$str]) && mb_strlen(strip_tags($_POST[$str]),"utf-8") > $len;
    }


    function checkEmail($str)
    {
    return preg_match("/^[\.A-z0-9_\-\+]+[@][A-z0-9_\-]+([.][A-z0-9_\-]+)+[A-z]{1,4}$/", $str);
    }




    ?>

  2. #2
    Moderatore L'avatar di lucabartoli
    Data Registrazione
    Feb 2010
    Località
    Torino
    Messaggi
    510
    Ciao Pit77,
    sostituisci
    Codice PHP:
    $mail->Send(); 
    con
    Codice PHP:
    if($mail->Send()){
      
    header("refresh:2;url=index.html");
      echo 
    "La mail è stata inviata con successo. Grazie per averci contattato";
    } else {
      echo 
    "Qualcosa è andato storto.";

    Ti ho scambiato la funzione header con l'echo, perché non puoi inviare un header dopo aver già stampato qualcosa a schermo.

    Luca

  3. #3
    User Newbie
    Data Registrazione
    Jan 2013
    Località
    Santhià
    Messaggi
    2
    Ciao Luca, grazie per la risposta. Avevo già provato in questo modo ma purtroppo viene eseguito solo l'header e non stampa nulla, quindi mi fa vedere una pagina bianca per due secondi e poi mi reindirizza all'index...

    Citazione Originariamente Scritto da lucabartoli Visualizza Messaggio
    Ciao Pit77,
    sostituisci
    Codice PHP:
    $mail->Send(); 
    con
    Codice PHP:
    if($mail->Send()){
      
    header("refresh:2;url=index.html");
      echo 
    "La mail è stata inviata con successo. Grazie per averci contattato";
    } else {
      echo 
    "Qualcosa è andato storto.";

    Ti ho scambiato la funzione header con l'echo, perché non puoi inviare un header dopo aver già stampato qualcosa a schermo.

    Luca

  4. #4
    Moderatore L'avatar di lucabartoli
    Data Registrazione
    Feb 2010
    Località
    Torino
    Messaggi
    510
    E' strano perché dopo gli header dovrebbe essere processato tutto il resto. Mi viene il dubbio che hai qualche errore, prova ad inserire questo codice all'inizio del tuo script:
    Codice PHP:
    error_reporting(E_ALL);ini_set('display_errors''1'); 
    Ti esce qualcosa?

+ Rispondi alla Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.