Problemi con ricezione mail dal form

Francy_F

Nuovo Utente
22 Mag 2015
5
0
0
Ciao a tutti,
ho un problema con l'invio delle mail dal form. Volevo creare un form per la richiesta preventivi, inserendo quindi il tag <select>. Quando arriva la mail compare tutto, meno la scelta fatta nella parte <select>.


Vi inserisco di seguito i codici:


Questo invece è la parte html:
HTML:
<form id="formail" method="post" action="">    
<div id="risposta" style="width:50%; text-align: center; ">
</div>
<div class="input-field">    
<p>Nome:</p>    
<input type="text" id="nome" class="form-control" name="nome"  value="" /><br />
</div>
<div class="input-field">    
<p>Marca:</p>    
<select id="marca" class="form-control" name="marca" value="">      
<option value="1">FIAT</option>      
<option value="2">LANCIA</option>      
<option value="3">ABART</option>      
<option value="4">ALFA</option>    
</select>
</div>
<div class="input-field">
    <p>E-mail:</p>    
<input type="text" id="email" class="form-control" name="email"  value="" /><br />
</div>
<div class="input-field">    
<p>Oggetto:</p>    
<input type="text" id="oggetto" class="form-control" name="oggetto"  value="" /><br />
</div>
<div class="input-field">    
<p>Messaggio:</p>    
<textarea id="messaggio" class="form-control" name="messaggio" rows="5" cols="4"></textarea><br />
</div>        
<input type="submit" class="btn btn-blue btn-effect" id="invia" name="invia" value="INVIA" />    
</form>


Questo invece è la parte Java:
Codice:
$(document).ready(function(){
    $("#invia").click(function(){
    
    //Recuperiamo tutte le variabili
        var valid = '';
        var isr = ' <p>&Eacute; richiesto';
        var name = $("#nome").val();
        var marca = $("#marca").val();
        var mail = $("#email").val();
        var subject = $("#oggetto").val();
        var messaggio = $("#messaggio").val();
    //Eseguiamo una serie di controlli
        if (name.length<1) {
            valid += isr+' un nome valido</p>';
        }
        if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
            valid += isr+' un indirizzo e-mail valido</p>';
        }
        if (marca.length<1) {
            valid += isr+' una marca valida</p>';
        }
        if (subject.length<1) {
            valid += isr+' un oggetto valido</p>';
        }
        
    //Se i controlli non vengono superati, appare il messaggio di errore.
        if (valid!='') {
            $("#risposta").fadeIn("slow");
            $("#risposta").html("<p><b>Errore:</b></p>"+valid);
            $("#risposta").css("background-color","#FFFFF");
            $("#risposta").css("color","rgba(116,0,1,1.00)");
        }
        //Se i controlli vengono superati, compare un messaggio di invio in corso
        else {
            var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&messaggio=' + encodeURIComponent(messaggio);
            $("#risposta").css("display", "block");
            $("#risposta").css("background-color","#FFFFF");
            $("#risposta").css("color"," rgba(66,66,66,1.00)");
            $("#risposta").html("<p>Invio del messaggio in corso..</p>");
            $("#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","#FFFFF");
        $("#risposta").css("color"," rgba(107,130,39,1.00)");
        setTimeout('$("#risposta").fadeOut("slow")',2000);
    }
    });
}

Ed infine la parte PHP:
PHP:
 <?php
//Recuperiamo tutte le variabili
    $mail = $_POST['mail'];
    $name = $_POST['name'];
    $subject = $_POST['subject'];
    $text = $_POST['messaggio'];
    $ip = $_SERVER['REMOTE_ADDR'];
    
//Qui andrà inserito il tuo indirizzo e-mail
$to = "[email protected]";


//Creazione del mesaggio da inviare
$message = "Hai ricevuto una e-mail da: ".$name.", ".$mail.".<br />";
$message .= "Messaggio: <br />".$text.", ".$marca."<br /><br />";
$message .= "ti ha contattato per l'articolo $marca";
$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, $subject,$message, $headers)){
    echo "<p>Messaggio inviato con successo!</p>";
}
//Altrimenti un messaggio di errore
else{ 
    echo "<p>Ci sono stati degli errori nell'invio della e-mail. Riprova</p>";
}
?>


Potete aiutarmi?
grazie!
 

otto9due

Utente Attivo
22 Feb 2014
590
25
28
PHP:
 <?php 
//Recuperiamo tutte le variabili 
    $mail = $_POST['mail']; 
    $name = $_POST['name']; 
    $subject = $_POST['subject']; 
    $text = $_POST['messaggio']; 
    $ip = $_SERVER['REMOTE_ADDR'];
Anzitutto mi pare tu non abbia ricevuto la variabile.. dovrebbe esserci qualcosatipo:
PHP:
$marca = $_POST['marca'];

Altra cosa, se nel form fai una cosa del genere:

PHP:
<option value="1">FIAT</option>      
<option value="2">LANCIA</option>      
<option value="3">ABART</option>      
<option value="4">ALFA</option>

Se un utente sceglie FIAT il valore che viene passato è 1, quindi nella mail riceverai marca 1.
Io avrei fatto così:
PHP:
<option value="FIAT">FIAT</option>      
<option value="LANCIA">LANCIA</option>      
<option value="ABART">ABART</option>      
<option value="ALFA">ALFA</option>
 

Francy_F

Nuovo Utente
22 Mag 2015
5
0
0
Anzitutto mi pare tu non abbia ricevuto la variabile.. dovrebbe esserci qualcosatipo:
PHP:
$marca = $_POST['marca'];

Altra cosa, se nel form fai una cosa del genere:

PHP:
<option value="1">FIAT</option>      
<option value="2">LANCIA</option>      
<option value="3">ABART</option>      
<option value="4">ALFA</option>

Se un utente sceglie FIAT il valore che viene passato è 1, quindi nella mail riceverai marca 1.
Io avrei fatto così:
PHP:
<option value="FIAT">FIAT</option>      
<option value="LANCIA">LANCIA</option>      
<option value="ABART">ABART</option>      
<option value="ALFA">ALFA</option>


Avevo provato anche richiamando la variabile ma niente.. Per quanto riguarda i valori lo so, era solo una prova per la mail :)

hai qualche altro suggerimento?

Grazie!
 

otto9due

Utente Attivo
22 Feb 2014
590
25
28
Avevo provato anche richiamando la variabile ma niente.. Per quanto riguarda i valori lo so, era solo una prova per la mail :)

hai qualche altro suggerimento?

Grazie!

Prova a togliere il value sostituisci il form con questo:

PHP:
<form id="formail" method="post" action="">    
<div id="risposta" style="width:50%; text-align: center; ">
</div>
<div class="input-field">    
<p>Nome:</p>    
<input type="text" id="nome" class="form-control" name="nome" /><br />
</div>
<div class="input-field">    
<p>Marca:</p>    
<select id="marca" class="form-control" name="marca">      
<option value="FIAT">FIAT</option>      
<option value="LANCIA">LANCIA</option>      
<option value="ABART">ABART</option>      
<option value="ALFA">ALFA</option>    
</select>
</div>
<div class="input-field">
    <p>E-mail:</p>    
<input type="email" id="email" class="form-control" name="email"/><br />
</div>
<div class="input-field">    
<p>Oggetto:</p>    
<input type="text" id="oggetto" class="form-control" name="oggetto"/><br />
</div>
<div class="input-field">    
<p>Messaggio:</p>    
<textarea id="messaggio" class="form-control" name="messaggio" rows="5" cols="4"></textarea><br />
</div>        
<input type="submit" class="btn btn-blue btn-effect" id="invia" name="invia" value="INVIA" />    
</form>

Ho notato che non hai puntato l'action..
Ovviamente dall'altra parte devi avere "obbligatoriamente" :
PHP:
 $mail = $_POST['mail']; 
 $name = $_POST['name']; 
 $subject = $_POST['subject']; 
 $marca = $_POST['marca']; 
 $text = $_POST['messaggio']; 
 $ip = $_SERVER['REMOTE_ADDR'];
 
Ultima modifica:

Francy_F

Nuovo Utente
22 Mag 2015
5
0
0
Prova a togliere il value sostituisci il form con questo:

PHP:
<form id="formail" method="post" action="">    
<div id="risposta" style="width:50%; text-align: center; ">
</div>
<div class="input-field">    
<p>Nome:</p>    
<input type="text" id="nome" class="form-control" name="nome" /><br />
</div>
<div class="input-field">    
<p>Marca:</p>    
<select id="marca" class="form-control" name="marca">      
<option value="FIAT">FIAT</option>      
<option value="LANCIA">LANCIA</option>      
<option value="ABART">ABART</option>      
<option value="ALFA">ALFA</option>    
</select>
</div>
<div class="input-field">
    <p>E-mail:</p>    
<input type="email" id="email" class="form-control" name="email"/><br />
</div>
<div class="input-field">    
<p>Oggetto:</p>    
<input type="text" id="oggetto" class="form-control" name="oggetto"/><br />
</div>
<div class="input-field">    
<p>Messaggio:</p>    
<textarea id="messaggio" class="form-control" name="messaggio" rows="5" cols="4"></textarea><br />
</div>        
<input type="submit" class="btn btn-blue btn-effect" id="invia" name="invia" value="INVIA" />    
</form>

Ho notato che non hai puntato l'action..
Ovviamente dall'altra parte devi avere "obbligatoriamente" :
PHP:
 $mail = $_POST['mail']; 
 $name = $_POST['name']; 
 $subject = $_POST['subject']; 
 $marca = $_POST['marca']; 
 $text = $_POST['messaggio']; 
 $ip = $_SERVER['REMOTE_ADDR'];



Di nuovo niente.
Hai mica i codici un form funzionante (con tag select) da farmi vedere? in modo da capire dove sbaglio, perchè tutte le altre variabili le vedo correttamente (testo, oggetto nome), solo la scelta del select non vedo.
 

otto9due

Utente Attivo
22 Feb 2014
590
25
28
Perdonami, avevo dato troppe cose per scontate.. Avevi fatto anche qualche errore nel richiamare le variabili..
Ora funziona certamente l'ho appena testato e i dati arrivano tutti..

PHP:
<form id="formail" method="post" action="">     
<div id="risposta" style="width:50%; text-align: center; "> 
</div> 
<div class="input-field">     
<p>Nome:</p>     
<input type="text" id="nome" class="form-control" name="nome" /><br /> 
</div> 
<div class="input-field">     
<p>Marca:</p>     
<select id="marca" class="form-control" name="marca">       
<option value="FIAT">FIAT</option>       
<option value="LANCIA">LANCIA</option>       
<option value="ABART">ABART</option>       
<option value="ALFA">ALFA</option>     
</select> 
</div> 
<div class="input-field"> 
    <p>E-mail:</p>     
<input type="email" id="email" class="form-control" name="email"/><br /> 
</div> 
<div class="input-field">     
<p>Oggetto:</p>     
<input type="text" id="oggetto" class="form-control" name="oggetto"/><br /> 
</div> 
<div class="input-field">     
<p>Messaggio:</p>     
<textarea id="messaggio" class="form-control" name="messaggio" rows="5" cols="4"></textarea><br /> 
</div>         
<input type="submit" class="btn btn-blue btn-effect" id="invia" name="invia" value="INVIA" />     
</form>
Avevi sbagliato alcuni di questi:
PHP:
$mail = $_POST['mail'];  
$name = $_POST['nome'];  
$subject = $_POST['oggetto'];  
$marca = $_POST['marca'];  
$text = $_POST['messaggio'];  
$ip = $_SERVER['REMOTE_ADDR'];
 

Francy_F

Nuovo Utente
22 Mag 2015
5
0
0
Perdonami, avevo dato troppe cose per scontate.. Avevi fatto anche qualche errore nel richiamare le variabili..
Ora funziona certamente l'ho appena testato e i dati arrivano tutti..

PHP:
<form id="formail" method="post" action="">     
<div id="risposta" style="width:50%; text-align: center; "> 
</div> 
<div class="input-field">     
<p>Nome:</p>     
<input type="text" id="nome" class="form-control" name="nome" /><br /> 
</div> 
<div class="input-field">     
<p>Marca:</p>     
<select id="marca" class="form-control" name="marca">       
<option value="FIAT">FIAT</option>       
<option value="LANCIA">LANCIA</option>       
<option value="ABART">ABART</option>       
<option value="ALFA">ALFA</option>     
</select> 
</div> 
<div class="input-field"> 
    <p>E-mail:</p>     
<input type="email" id="email" class="form-control" name="email"/><br /> 
</div> 
<div class="input-field">     
<p>Oggetto:</p>     
<input type="text" id="oggetto" class="form-control" name="oggetto"/><br /> 
</div> 
<div class="input-field">     
<p>Messaggio:</p>     
<textarea id="messaggio" class="form-control" name="messaggio" rows="5" cols="4"></textarea><br /> 
</div>         
<input type="submit" class="btn btn-blue btn-effect" id="invia" name="invia" value="INVIA" />     
</form>
Avevi sbagliato alcuni di questi:
PHP:
$mail = $_POST['mail'];  
$name = $_POST['nome'];  
$subject = $_POST['oggetto'];  
$marca = $_POST['marca'];  
$text = $_POST['messaggio'];  
$ip = $_SERVER['REMOTE_ADDR'];

Ora succede una cosa strana.
Prima, quando inviavo la mail senza specificare nulla nella parte action dell'html funzionava nel modo corretto (senza però mostrare la scelta delle select). Ora, se non specifico la parte action non vedo la mail che inseriscono e la scritta "messaggio inviato" compare in un'altra pagina.

Come faccio a far funzionare tutto correttamente? è possibile che ci sia qualche errore nel java?

Grazie mille per il momento! :)
 

otto9due

Utente Attivo
22 Feb 2014
590
25
28
Come faccio a far funzionare tutto correttamente? è possibile che ci sia qualche errore nel java?

Grazie mille per il momento! :)

Purtroppo in campo Java non sono molto pratico, ti conviene attendere qualcuno più addentrato in questo linguaggio.. Comunque per quanto riguarda il form in php ( mettendo l'action ) in questo modo funziona.
 

Francy_F

Nuovo Utente
22 Mag 2015
5
0
0
Purtroppo in campo Java non sono molto pratico, ti conviene attendere qualcuno più addentrato in questo linguaggio.. Comunque per quanto riguarda il form in php ( mettendo l'action ) in questo modo funziona.

Grazie mille! Prima ti ho detto che non funzionava correttamente.. che mancavano dei pezzi, ma era il mio cervello che chiedeva pietà! Riprovando è tutto corretto e (mettendo l'action) funziona! Ho solo più una piccola domanda, l'action deve essere per forza .php?

Grazie davvero per tutto l'aiuto!! :D
 
Discussioni simili
Autore Titolo Forum Risposte Data
T problemi con dati menu a tendina HTML e CSS 2
M Upload immagine con javascript problemi con FormData() Javascript 1
A Problemi con move_uploaded_file PHP 7
M Problemi con la stampa dei valori in php PHP 1
L Problemi con il login PHP 2
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Z problemi con foreach insert into PHP 10
B javascript per problemi con pdf e Safari Javascript 0
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
M Problemi con blog Grav CMS (Content Management System) 0
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
S Problemi con modulo upload video php (help!) PHP 0
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
O [HTML] problemi con la regola "background-attachment: fixed" in EDGE HTML e CSS 0
M [PHP] Problemi con query unione PHP 11
M [PHP] Problemi con select PHP 6
ANDREA20 [HTML] problemi con il footer HTML e CSS 1
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
M [PHP] Problemi con il riconoscimento login. PHP 21
A [WordPress] problemi con xampp WordPress 2
M Problemi con database Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.3.1 PHP 6
S [PHP] problemi con le sessioni PHP 3
T [PHP] problemi con il browser PHP 0
Andrea_Ventura [HTML] Problemi con effetto hover HTML e CSS 5
M [PHP] Problemi con login facebook PHP 0
Andrea_Ventura [HTML] Problemi con visualizzazione Navigation Bar HTML e CSS 10
andreas88 Creare file .htaccess per risolvere alcuni problemi con il tester SEO SEO e Posizionamento 0
Eugene [Joomla] Problemi con modulo per strutture alberghiere JHotelreservation starter Joomla 6
F [PHP] Problemi di base con bot di telegram PHP 9
M [Photoshop] Problemi con importazione immagini trasparenti in indesign Photoshop 0
E [Photoshop] Problemi con dimensioni immagini Photoshop 12
G [HTML] Problemi con inserimento immagini HTML e CSS 7
L Problemi con Javascript e Mustache Javascript 0
G Invio Mail con PHPMailer, problemi SMTP PHP 7
A [Javascript] problemi con javascrip e posizione GPS html5 Javascript 6
D Due problemi con Photoshop... Photoshop 1
G Problemi con pagina online.php di una chat in php PHP 38
S Problemi con impostazioni php PHP 3
P Problemi con AndroidStudio Sviluppo app per Android 0
S Problemi con Dell Precision T5400 Windows e Software 2
F ciao, sono ferro e ho bisogno di aiuto per problemi con la mail di alice.it Presentati al Forum 1
S [PHP] Problemi con Login e pagina Utente PHP 5
Z problemi con swf e chrome o sistemi portatili Webdesign e Grafica 5
N Problemi connettività con Tp Link EAP 110 Reti LAN e Wireless 0
S [HTML] Problemi con Blueimp image gallery su Chrome e Firefox HTML e CSS 2
W [HTML] problemi con sito responsive CMS (Content Management System) 1

Discussioni simili