- Home
- Categorie
- Coding e Sistemistica
- Coding
- php - Invio mail form
-
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
-
Basta studiare, e tanta pratica... E chiunque può imparare.
-
Scusami ancora.. Una cosa che ho visto e che quando non compili un campo.. non ti è possibile tornare indietro per compilare quel campo mancante.. o.o come si può fare?