Visualizzazione dei risultati da 1 a 6 su 6

Discussione: modulo con invio mail

  1. #1

    modulo con invio mail

    ciao a tutti!

    ho fatto un semplice modulo per la richiesta di un preventivo con i vari controlli degli errori sui campi di immissione testo e ho usato la funzione mail() in modo che se viene inviata la mail compare la scritta "messaggio inviato correttamente" oppure "messaggio non inviato".
    Però questi messaggi li visualizzo sempre nella pagina del modulo stesso mentre io vorrei che dopo l'invio caricasse una nuova pagina senza modulo ma solamente con la scritta "messaggio inviato" o "messaggio non inviato"..
    Se qualcuno postasse un esempio gliene sarei molto grato...
    Per una battaglia sono sempre a disposizione

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Non sono un esperto ma secondo me devi far puntare il modulo che hai creato ad una seconda pagina e questa, una volta che ha ricevuto i dati, ti darà il messaggio relativo.

    Prima pagina:

    codice:
    <form id="modulo" action="seconda pagina.php" method="POST" onsubmit="return check()">
    bla bla bla
    </form>
    Seconda pagina:

    Codice PHP:
    <?
    include("config.inc.php");
    $nome $_POST['nome'];
    $cognome $_POST['cognome'];
    $città $_POST['città'];
    $mail $_POST['mail'];
    $commento $_POST['commento'];

            
    if (
    trim($nome) == "" OR trim($mail) == "" OR trim($città) == ""):
    echo 
    "I campi contrassegnati da questo simbolo (*) devono essere riempiti!";
    else:
    $nome stripslashes($nome);
    $città stripslashes($città);
    $mail stripslashes($mail);
    $commento stripslashes($commento);
    $commento nl2br($commento);

    $connessione mysql_connect($db_host$db_user$db_password) or die("Errore nella connessione a MySql: ".mysql_error());
    mysql_select_db($db_name$connessione);
    $query "INSERT INTO tuodatabase (nome, cognome, data, città, mail, commento) VALUES ('$nome', '$cognome', NOW() , '$città', '$mail', '$commento')";
    if (
    mysql_query($query$connessione))
    echo 
    "Il tuo commento è stato inserito correttamente!";
    else
    echo 
    "Errore durante l'inserimento ".mysql_error();
    endif;
    ?>
    //Questa è la mail che arriva a chi ha compilato il modulo
    <?
    $nome 
    $_POST['nome'];
    $mail $_POST['mail'];
    // L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
    $to "$mail";
    // IL SOGGETTO DELLA MAIL
    $subject "Soggetto della mail";
    // COSTRUIAMO IL CORPO DEL MESSAGGIO
    $body .= "Ciao $nome,\n";
    $body .= "grazie per aver compilato il nostro modulo!\n";
    // INTESTAZIONI SUPPLEMENTARI
    $headers "From: <mio@indirizzo.it>";
    // INVIO DELLA MAIL
    mail($to$subject$body$headers);
    ?>
    //Questa è la ail che arriva a me
    <?
    $nome 
    $_POST['nome'];
    $mail $_POST['mail'];
    // L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
    $to2 "mio@indirizzo.it";
    // IL SOGGETTO DELLA MAIL
    $subject2 "Nuovo messaggio!";
    // COSTRUIAMO IL CORPO DEL MESSAGGIO
    $body2 .= "$nome ha appena compilato il modulo!\n";
    // INTESTAZIONI SUPPLEMENTARI
    $headers2 "From: $nome<$mail>";
    // INVIO DELLA MAIL
    mail($to2$subject2$body2$headers2);
    mysql_close($connessione);
    ?>
    Ciao

  3. #3
    ho fatto in modo che i nomi dei campi inseriti male cambino colore nella stessa pagina, e solo a messaggio inviato venga caricata la pagina con il risultato, mi sembra di vedere chenel tuo codice l'errore venga segnalato nella seconda pagina, giusto? se così fosse non è la mia richiesta..
    Per una battaglia sono sempre a disposizione

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Sì, nel mio caso l'errore viene considerato nella seconda pagina ma niente ti vieta di fare in modo che una volta che non ci sono errori nel tuo modulo ti apra una nuova pagina che si occuperà di inviare la mail

  5. #5
    cmq è questo il problema, non so come scrivere il codice per l'invio mail in una seconda pagina...vabbè faccio delle altre prove e in caso posto il codice..
    cmq grazie lo stesso per l'aiuto!
    Per una battaglia sono sempre a disposizione

  6. #6
    cmq ho risolto inserendo due header location. in caso di mail inviata apre la pagina mailOk.php mentre in caso di errore apre errorMail.php.
    Per una battaglia sono sempre a disposizione

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.