- Home
- Categorie
- Coding e Sistemistica
- Coding
- php - Invio mail form
-
Ciao Painless,
cosa intendi per "non calcolando il submit"?
-
Mi dovrebbe comparire il messaggio dopo che ho compilato il modulo e premuto il bottone invia.. Ma il messaggio compare prima ancora di compilare il modulo.. Invece io voglio che uno compila il modulo.. E una volta che premi invio il form scompare.. E comparira il messaggio con l'esito della mail.. Ovvero se è stata inviata correttamente o no.
-
Prova cosi:
[php]
<?php
if(isset($_POST['submit']))
{
// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "<mail>";// IL SOGGETTO DELLA MAIL
$subject = "RICHIESTA PRODOTTO - TECNOWOODSHOP.IT";// COSTRUZIONE DEL CORPO DEL MESSAGGIO
$body = "Contenuto del modulo:\n\n";$body .= "Dati personali ;\nCognome: " . trim(stripslashes($_POST["cognome"])) . "\n";
$body .= "Nome: " . trim(stripslashes($_POST["nome"])) . "\n";
$body .= "Indirizzo: " . trim(stripslashes($_POST["indirizzo"])) . "\n";
$body .= "Tel: " . trim(stripslashes($_POST["tel"])) . "\n";
$body .= "Mail: " . trim(stripslashes($_POST["mail"])) . "\n";
$body .= "Prodotto: " . trim(stripslashes($_POST["prodotto"])) . "\n";
$body .= "Ricevere Newsletter?: " . trim(stripslashes($_POST["new"])) . "\n\n";// INTESTAZIONI SUPPLEMENTARI
$headers = "From: Modulo utenti <INDIRIZZO-COME-SOPRA>";// INVIO DELLA MAIL
if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...echo "MAIL INOLTRATA.";
} else {// ALTRIMENTI...
echo "ERRORE MAIL.";
}
}?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CONTATTACI</title>
<link rel="icon" href="img/ico.png" type="image/png">
<link href="css.css" rel="stylesheet" type="text/css" />
</head><body style="margin:0; color: #fff; font-size:10px;">
<form name="form1" method="post" action="<?php echo ($_SERVER["PHP_SELF"]); ?>">
<table width="160" border="0" cellspacing="3" cellpadding="0">
<tr>
<td width="55" height="25" align="right" style="padding-right: 5px; color:#fff; font-size:11px">Nome: </td>
<td height="25" align="right" style="padding-right: 5px;"><input name="nome" type="text" size="10" /></td>
</tr>
<tr>
<td height="25" align="right" style="padding-right: 5px; color:#fff; font-size:11px">Cognome:</td>
<td align="right" style="padding-right: 5px;"><input name="cognome" type="text" size="10" /></td>
</tr>
<tr>
<td height="25" align="right" style="padding-right: 5px; color:#fff; font-size:11px">Indirizzo:</td>
<td align="right" style="padding-right: 5px;"><input name="indirizzo" type="text" size="10" /></td>
</tr>
<tr>
<td height="25" align="right" style="padding-right: 5px; color:#fff; font-size:11px">Tel:</td>
<td align="right" style="padding-right: 5px;"><input name="tel" type="text" size="10" /></td>
</tr>
<tr>
<td height="25" align="right" style="padding-right: 5px; color:#fff; font-size:11px">Email:</td>
<td align="right" style="padding-right: 5px;"><input name="mail" type="text" size="10" /></td>
</tr>
<tr>
<td height="25" colspan="2" align="right" style="padding-right: 5px;"><select name="prodotto" style="width: 140px; font-size:11px">
<option>Seleziona il prodotto</option>
<option value="Armadio 2 ante con casetti - Noce / H 186">Noce / H 186</option>
<option value="Armadio 2 ante con casetti - Noce / H 224">Noce / H 224</option>
<option value="Armadio 2 ante con casetti - Bianco / H 186">Bianco / H 186</option></select> </td>
</tr>
<tr>
<td height="25" colspan="2" align="center" style="padding-right: 5px; color:#fff; font-size:11px"><input style=" border-color:#EAEAEA" type="checkbox" name="new" value="Si"/>
Ricevere News-letter</td>
</tr>
<tr>
<td height="25" colspan="2" align="center" valign="bottom"><input type="submit" name="submit" value="INVIA" style="bacbackground-attachment: scroll;
background-clip: border-box;
background-color:;
border-color: #404040;
border-style: solid;
border-width: 1px;
color: #202020;
text-align: center;
width: 70px;
height: 18px;
font-size:10px;" /></td>
</tr>
</table>
</form></body>
</html>
[/php]
-
Funziona ma mi puoi spiegare cosi capisco e non ci ricado in un errore del genere.. Comunque grazie 1000.
-
Invece di eseguire sempre quel codice, con un if verifichi che la variabile POST submit sia stata inviata prima di eseguire quella parte di codice.
-
Scusami ancora e se invece vorrei fare in modo che se alcuni campi non sono compilati la mail non procede? E ti compare sempre un messaggio di errore?
-
Fai attenzione alle maiuscole nei tuoi messaggi...
Per quanto riguarda la domanda, dovresti fare degli if sulle variabili POST prima di utilizzare la funzione mail.
-
Si Scusami... If del tipo?
-
[php]
if(!isset($_POST["nome"]) || $_POST["nome"] == '')
die('Nome mancante');
[/php]
-
Ho provato.. ma inserendo questo che mi hai detto tu.. seguito dagli altri cambiando solo la variabile.. mi dice che è vuoto solo il primo campo..
Quindi mi compare il messaggio Nome mancante..
Appena compilo il campo nome mi dice cognome mancante.. mentre invece voglio che mi dice manca questo, questo e quastaltro..
-
Dovresti postare cosa hai fatto.
-
[PHP]
if(isset($_POST['submit']))
{if(!isset($_POST["nome"]) || $_POST["nome"] == '')
die('Nome mancante');
if(!isset($_POST["cognome"]) || $_POST["cognome"] == '')
die('Cognome mancante');
if(!isset($_POST["indirizzo"]) || $_POST["indirizzo"] == '')
die('Indirizzo mancante');
if(!isset($_POST["tel"]) || $_POST["tel"] == '')
die('Tel mancante');
if(!isset($_POST["mail"]) || $_POST["mail"] == '')
die('Mail mancante');
if(!isset($_POST["prodotto"]) || $_POST["prodotto"] == '')
die('Seleziona il Prodotto');// L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "[email protected]";// IL SOGGETTO DELLA MAIL
$subject = "RICHIESTA PRODOTTO - TECNOWOODSHOP.IT";// COSTRUZIONE DEL CORPO DEL MESSAGGIO
$body = "Contenuto del modulo:\n\n";$body .= "Dati personali ;\nCognome: " . trim(stripslashes($_POST["cognome"])) . "\n";
$body .= "Nome: " . trim(stripslashes($_POST["nome"])) . "\n";
$body .= "Indirizzo: " . trim(stripslashes($_POST["indirizzo"])) . "\n";
$body .= "Tel: " . trim(stripslashes($_POST["tel"])) . "\n";
$body .= "Mail: " . trim(stripslashes($_POST["mail"])) . "\n";
$body .= "Prodotto: " . trim(stripslashes($_POST["prodotto"])) . "\n";
$body .= "Ricevere Newsletter?: " . trim(stripslashes($_POST["new"])) . "\n\n";// INTESTAZIONI SUPPLEMENTARI
$headers = "From: Modulo utenti <INDIRIZZO-COME-SOPRA>";// INVIO DELLA MAIL
if(@mail($to, $subject, $body, $headers)) { // SE L'INOLTRO E' ANDATO A BUON FINE...echo "<div style="text-align:center;width:160px;color:#00ff00" align="center"><b>"."MAIL INOLTRATA."."</b></div>";
}
else {// ALTRIMENTI...
echo "<div style="text-align:center;width:160px;color:red" align="center"><b>"."ERRORE MAIL."."</b></div>";
}
}
?>
[/PHP]
-
Invece di usare die sarebbe da usare echo e inserire una variabile flag per non inviare l'email in caso di errori, ma dovresti comunque studiare le basi di php.
-
EeehhHHh!1 No scusami ho capito ben poco.. Siccome dovrei fare solo quest'ultima cosa.. ti chiedo umilmente se mi puoi aiutare.. Per quanto riguarda il php me lo devo insegnare.. ma per ora non ho tempo..
-
[php]
if(!isset($_POST["nome"]) || $_POST["nome"] == '')
{
$err = true;
echo 'Nome mancante<br>';
}
if(!isset($_POST["cognome"]) || $_POST["cognome"] == '')
{
$err = true;
echo 'Cognome mancante<br>';
}
if(!isset($_POST["indirizzo"]) || $_POST["indirizzo"] == '')
{
$err = true;
echo 'Indirizzo mancante<br>';
}
if(!isset($_POST["tel"]) || $_POST["tel"] == '')
{
$err = true;
echo 'Tel mancante<br>';
}
if(!isset($_POST["mail"]) || $_POST["mail"] == '')
{
$err = true;
echo 'Mail mancante<br>';
}
if(!isset($_POST["prodotto"]) || $_POST["prodotto"] == '')
{
$err = true;
echo 'Seleziona il Prodotto<br>';
}
if(isset($err))
die;
[/php]
-
Grazie
-
Ti ho già scritto il codice esatto veramente...
Forse non hai visto la seconda pagina della discussione.
-
Comunque vedi che il "$_POST["prodotto"]" è un menu a tendina.. Quindi non so come si deve procedere per questo? Penso che sia in ogni caso selezionato il menu a tendina.. Ma se io voglio che devi selezionare una voce differente da "Seleziona prodotto" per procedere come deve essere sto codice?? Comunque questa è l'ultima cosa che ti chiedo.. Prometto che non ti stresso più..
-
Se invece di:
<option>Seleziona il prodotto</option>
Metti:
<option value="">Seleziona il prodotto</option>
Funziona sicuramente.
-
:DDD Grazie mille... Vorrei averle io le tue conoscenze