Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    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('
    ',$err);
    $_SESSION['post']=$_POST;
    header('Refresh:3; Location: '.$_SERVER['HTTP_REFERER']);
    }

    exit;
    }


    $msg=
    'Nome: '.$_POST['first_name'].'

    Email: '.$_POST['email'].'

    Telefono: '.$_POST['phone_number'].'

    Oggetto: '.$_POST['subject'].'

    IP: '.$_SERVER['REMOTE_ADDR'].'



    Messaggio:



    '.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
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,647
    prima di un istruzione header, per ovvi motivi, non puoi stampare nulla, inseriscilo sotto, ma controlla anche che realmente la mail sia stata inviata ($mail->Send()), ritorna true se l'invio è avvenuto.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    2
    Grazie per la risposta. Ma non riesco a capire dove devo inserire le due istruzioni. Ho provato ad inserire l'echo dopo header('Location: '.$_SERVER['HTTP_REFERER']); ma non il messaggio non viene visualizzato...

  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,647
    Codice PHP:
    header('Location: '.$_SERVER['HTTP_REFERER']); 
    questa istruzione fa un redirect, quindi se stampi dopo non fai tempo a vedere il tuo messaggio.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.