Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    3

    Contact Form Mail Php E Jquery (Non riesco ad inviare email)

    Salve,
    Ringrazio in anticipo chi è disposto ad aiutarmi, premesso che sto impazzendo dopo svariate letture e tentativi non riesco a venirne a capo.
    Il problema è che non invia l' email, esegue il controllo di tutti i campi funziona tutto come si deve, ma quando provo ad inviare mi da sempre lo stesso errore
    "Ci sono stati degli errori nell'invio della e-mail."
    Non riesco davvero a capire quale sia il problema,ho controllato tutto, ovviamente non ho fatto le prove in locale ho caricato tutto sul server con tutti i file in unica cartella e comunque non funziona...
    Potreste aiutarmi?? Grazie

    In pratica questo è il mio form:

    <form id="formail" method="post" action="">
    <div id="risposta">
    </div>
    <table width="297" border="0" align="center" cellpadding="1" cellspacing="0">
    <tr>
    <td width="129" height="10" align="center">* Campi richiesti</td>
    </tr>
    <tr>
    <td width="82">

    *Nome:</p></td>
    <td width="168"><input type="text" id="nome" name="nome" value="" /></td>
    </tr>
    </tr>
    <tr>
    <td>

    *Cognome:</p></td>
    <td><input type="text" id="cognome" name="cognome" value="" /></td>
    </tr>
    <tr>
    <td>

    *Citta':</p></td>
    <td><input type="text" id="citta" name="citta" value="" /></td>
    </tr>
    <tr>
    <td>

    *E-mail:</p></td>
    <td><input type="text" id="email" name="email" value="" /></td>
    </tr>
    </table>
    <table border="0" align="center">
    <tr>
    <td height="80"width="297" align="center" >

    <p2>bla blabla bla</p2>




    </p>
    <p2>Accetto condizioni: </p2>
    <p2>

    SI<input type="checkbox" id="privacisy" onclick="document.getElementById('privacyno').chec ked=false;
    document.getElementById('verifica').value='Acconse nto'">

    NO
    <input type="checkbox" id="privacyno" checked="checked" onclick="document.getElementById('privacisy').chec ked=false;
    document.getElementById('verifica').value='Non Acconsento'">
    </p2>
    <tr>
    <td><input type="submit" id="invia" name="invia" value="Invia" />
    </td>
    </table>
    </form>

    Poi il fileJQuery :

    $(document).ready(function(){
    $("#invia").click(function(){

    //Recuperiamo tutte le variabili
    var valid = '';
    var isr = ' è richiesto.</p>';
    var nome = $("#nome").val();
    var cognome = $("#cognome").val();
    var citta = $("#citta").val();
    var mail = $("#email").val();
    //Eseguiamo una serie di controlli
    if (nome.length<1) {
    valid += '<p2>Un nome valido'+isr;
    }
    if (cognome.length<1) {
    valid += '<p2>Un cognome valido'+isr;}
    if (citta.length<1) {
    valid += '<p2>Una città valida'+isr;
    }
    if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
    valid += '<p2>Un indirizzo e-mail valido'+isr;
    }
    if (formail.privacyno.checked){
    valid += '<p2>Accetta condizioni'+isr;
    }
    //Se i controlli non vengono superati, appare il messaggio di errore.
    if (valid!='') {
    $("#risposta").fadeIn("slow");
    $("#risposta").html("<p2>Errore:
    </p2>"+valid);
    $("#risposta").css("background-color","#f63841");
    }
    //Se i controlli vengono superati, compare un messaggio di invio in corso
    else {
    var datastr ='&nome=' + name + '&cognome=' + cognome +'&mail=' + mail+ '&citta=' + citta;
    $("#risposta").css("display", "block");
    $("#risposta").css("background-color","#f68922");
    $("#risposta").html("<p2>Invio del messaggio in corso..</p2>");
    $("#risposta").fadeIn("slow");
    setTimeout("send('"+datastr+"')",2000);
    }
    return false;
    });
    });
    //Creazione della funzione di invio. Si baserà sul nostro file php "mail.php".
    function send(datastr){
    $.ajax({
    type: "POST",
    url: "mail.php",
    data: datastr,
    cache: false,
    success: function(html){
    $("#risposta").fadeIn("slow");
    $("#risposta").html(html);
    $("#risposta").css("background-color","#56b13a");
    setTimeout('$("#risposta").fadeOut("slow")',2000);
    }
    });
    }

    Ed in fine il file mail.php :
    <?php
    //Recuperiamo tutte le variabili
    $mail = $_POST['email'];
    $name = $_POST['nome'];
    $citta = $_POST['citta'];
    $cognome = $_POST['cognome'];
    $ip = $_SERVER['REMOTE_ADDR'];

    //Qui andrà inserito il tuo indirizzo e-mail
    $to = "miaemail@email.it";

    //Creazione del mesaggio da inviare
    $message = "Hai ricevuto una e-mail da: ".$name.", ".$mail.".
    \n";
    $message .= "Messaggio:
    ".$cognome.", ".$citta.".

    \n ";
    $message .= "IP: ".$ip."
    \n";
    $headers = "From: $mail \n";
    $headers .= "Reply-To: $mail \n";
    $headers .= "MIME-Version: 1.0 \n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1 \n";
    //Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio
    if(mail($to, $message, $headers)){
    echo "

    Messaggio inviato con successo</p>";
    }
    //Altrimenti un messaggio di errore
    else{
    echo "

    Ci sono stati degli errori nell'invio della e-mail.</p>";
    }
    ?>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto
    Il problema ritengo sia qui:
    var datastr ='&nome=' + name + '&cognome=' + cognome +'&mail=' + mail+ '&citta=' + citta;
    La variabile mail la spedisci con quel nome ma la recuperi lato server come email
    $mail = $_POST['email'];
    Toglierei anche datastr ='&<-- questa &


    P.S. Se non dovesse ancora andare verifica con un echo che il php riceva tutti i dati
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    3
    Ciao Andrea,
    intanto grazie per avermi risposto, ah e sono una lei

    Comunque ho provato a fare come mi hai suggerito..ma niente, continua a darmi lo stesso errore: "Ci sono stati degli errori nell'invio della e-mail."
    Dato che non sono ferratissima in materia, potresti cortesemente spiegarmi cosa intendi per
    "verifica con un echo che il php riceva tutti i dati" e come potrei fare? Grazie.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    108
    poi c'è scritto name e la variabile si chiama nome..
    fatti degli alert in javascript e degli echo php nei vari punti e vedi cos'altro c'è che non va..
    per esempio nell'errore sulla mail, stampati le variabili e vedi cosa arriva o meno

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Originariamente inviato da Fire_M
    Ciao Andrea,
    intanto grazie per avermi risposto, ah e sono una lei

    Comunque ho provato a fare come mi hai suggerito..ma niente, continua a darmi lo stesso errore: "Ci sono stati degli errori nell'invio della e-mail."
    Dato che non sono ferratissima in materia, potresti cortesemente spiegarmi cosa intendi per
    "verifica con un echo che il php riceva tutti i dati" e come potrei fare? Grazie.
    Non è che stai provando in locale vero? Possibile vedere la pagina online (tuosito.xxxx/tuapaginademo.xxxx)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    3
    Originariamente inviato da Laurianti
    poi c'è scritto name e la variabile si chiama nome..
    fatti degli alert in javascript e degli echo php nei vari punti e vedi cos'altro c'è che non va..
    per esempio nell'errore sulla mail, stampati le variabili e vedi cosa arriva o meno


    Ho corretto quei punti cosi':

    jquery:

    var valid = '';
    var isr = ' è richiesto.</p>';
    var nome = $("#nome").val();
    var citta = $("#citta").val();
    var mail = $("#email").val();
    //Eseguiamo una serie di controlli
    if (nome.length<1) {
    valid += '<p2>Un nome valido'+isr;
    }
    if (citta.length<1) {
    valid += '<p2>Una città valida'+isr;
    }
    if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
    valid += '<p2>Un indirizzo e-mail valido'+isr;
    }
    if (formail.privacyno.checked){
    valid += '<p2>Accetta condizioni'+isr;
    }
    //Se i controlli non vengono superati, appare il messaggio di errore.
    if (valid!='') {
    $("#risposta").fadeIn("slow");
    $("#risposta").html("<p2>Errore:
    </p2>"+valid);
    $("#risposta").css("background-color","#f63841");
    }
    //Se i controlli vengono superati, compare un messaggio di invio in corso
    else {
    var datastr ='nome=' + nome +'mail=' + email +'citta=' + citta;
    $("#risposta").css("display", "block");
    $("#risposta").css("background-color","#f68922");
    $("#risposta").html("<p2>Invio del messaggio in corso..</p2>");
    $("#risposta").fadeIn("slow");
    setTimeout("send('"+datastr+"')",2000);
    }
    return false;
    });
    });
    //Creazione della funzione di invio. Si baserà sul nostro file php "mail.php".
    function send(datastr){
    $.ajax({
    type: "POST",
    url: "mail.php",
    data: datastr,
    cache: false,
    success: function(html){
    $("#risposta").fadeIn("slow");
    $("#risposta").html(html);
    $("#risposta").css("background-color","#56b13a");
    setTimeout('$("#risposta").fadeOut("slow")',2000);
    }
    });
    }

    ---------------------------------
    php
    $mail = $_POST['email'];
    $nome = $_POST['nome'];
    $citta = $_POST['citta'];
    $ip = $_SERVER['REMOTE_ADDR'];

    //Qui andrà inserito il tuo indirizzo e-mail
    $to = "miamail@email.it";

    //Creazione del mesaggio da inviare
    $message = "Hai ricevuto una e-mail da: ".$nome.", ".$email.", ".$citta.".
    \n";
    $message .= "IP: ".$ip."
    \n";
    $headers = "From: $mail \n";
    $headers .= "Reply-To: $mail \n";
    $headers .= "MIME-Version: 1.0 \n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1 \n";
    //Se l'e-mail viene spedita correttamente, compare un messaggio di avvenuto invio
    if(mail($to, $message, $headers)){
    echo "

    Messaggio inviato con successo</p>";
    }
    //Altrimenti un messaggio di errore
    else{
    echo "

    Ci sono stati degli errori nell'invio della e-mail.</p>";
    }
    ?>



    Originariamente inviato da cavicchiandrea Non è che stai provando in locale vero? Possibile vedere la pagina online (tuosito.xxxx/tuapaginademo.xxxx)
    No..Lo so che in locale non funge,ho caricato tutto sul server in unica cartella chiamata prova proprio per provare se funziona...
    la pagina dove sto effettuando le prove del form è questa:
    http://www.tdtraveldeals.it/prova/prova.html

    Ovviamente non badare all'aspetto grafico di cui mi occupero' dopo...
    Come potrai verificare anche tu il form funziona mi restituisce tutti i campi errori
    ed al momento che invio..sempre lo stesso errore..

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    ok intanto hai questo errore quando spunti "Accetto condizioni"
    TypeError: document.getElementById(...) is null
    http://www.tdtraveldeals.it/prova/pr.../seq/1/onclick
    Line 3
    perché manca un campo con id "verifica"

    e qui
    $message = "Hai ricevuto una e-mail da: ".$nome.", ".$email.", ".$citta.".
    \n";
    hai un punto di troppo (prima del br)

    nel php inserisci questo subito dopo le variabili per capire cosa riceve:
    Codice PHP:
    $mail $_POST['email'];
    $nome $_POST['nome'];
    $citta $_POST['citta'];
    $ip $_SERVER['REMOTE_ADDR'];
    echo 
    $mail." ".$nome." ".$citta." ".$ip;
    exit; 


    P.S. Quando posti codice js usa i tasto [ code ] quando posti codice php usa [ php] grazie
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.