- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Tutorial] Gestione di un form mail semplice
-
dopo aver creato il form di invio mail funzionante, ho un problemino... invio mail, ricevo mail inviata con successo. Se aggiorno la pagina invia nuovamente la mail... come posso risolvere????
-
La dialog box di re-submit dei dati non puoi evitarla, a meno che non usi AJAX per trasferire i dati, ma puoi evitare che ti venga reinviata la email aggiungendo un controllo. Se il bottone che fa il submit è così definito:
[html]
<input type="submit" name="submit_mail" value="Invia">
[/html]lato PHP, puoi mettere
[php]
if (isset($_POST["submit_mail"])) {
// operazioni di invio della email
}
[/php]in modo che il codice si eseguirà solo se nella pagina precedente è stato cliccato il tasto submit_mail.
-
mmmm.. no così nn funziona... ho cmq il problema...
quando invio la mail si dovrebbe resettare il form...
-
Salve, ho inserito il modulo in una pagina del mio sito e creato il file invio.php così come specificato, non ho fatto nessun cambiamento nel codice tranne quelli del nome sito e dell'indirizzo di posta, ma sia in locale che in remoto il modulo non invia messaggi, o almeno io non li ricevo, non da messaggi di conferma per l'invio tantomeno messaggi di errore se si lasciano i campi vuoti. L'unica cosa che fa è in locale di chiedere di salvare il file invio.php e in remoto di aprire la pagina invio.php completamente bianca. Immagino che mi sfugge qualcosa di essenziale non essendo molto pratico di programmazione. Potete aiutarmi?
-
Salve ragazzi,anche io avrei qualche grana con il mio modulo per l'invio mail dal mio sito.
Quando ho fatto il sito anni fa,il modulo funzionava a dovere.
ma ora per caso ho scoperto che le mail inviate tramite quel modulo arrivano,ma arrivano in questa maniera.Nome:
Cognome:
Città :
Oggetto:
Testo: mail di prova
E-Mail:solo il box "Testo" mi ritorna compilato....gli altri box tornano vuoti,anche se li ho comunque riempiti
cosa vi servirebbe per capire cosa non va?
potreste darmi una manina? grazie
-
Ciao a tutti!
Innanzitutto grazie mille per questa guida utilissima! Anche un'inesperta come me è riuscita a far funzionare il form
Detto ciò, mi stavo cimentando nell'aggiunta di nuovi campi, come un menù a tendina e il checkbox per l'autorizzazione al trattamento dei dati, che vorrei fossero entrambi obbligatori: nel file modulo.html funziona tutto perfettamente, solo che non so cosa devo inserire nel file invio.php
Vi incollo i codici di entrambi:modulo.html
[HTML]
<form action="invio.php" method="post" id="modulo">
<table>
<tr>
<td>Nome*</td>
<td><label>
<input name="nome" type="text" id="nome" />
</label></td>
</tr>
<tr>
<td>Cognome*</td>
<td><label>
<input name="cognome" type="text" id="cognome" />
</label></td>
</tr>
<tr>
<td>E-mail*</td>
<td><label>
<input name="mail" type="text" id="mail" />
</label></td>
</tr>
<tr>
<td>Telefono*</td>
<td><label>
<input name="telefono" type="text" id="telefono" />
</label></td>
</tr>
<tr>
<td>Forma di consulenza:</td>
<td><label>
<select name="Forma di consulenza"><option selected="selected" value="Telefono">Telefonica</option><option value="Email">Email</option></select>
</label></td>
<tr>
<td>Oggetto</td>
<td><label>
<input name="object" type="text" id="object" />
</label></td>
</tr>
<tr>
<td>Descriva la sua questione*</td>
<td>
<textarea name="body" cols="35" rows="7" id="body">Scrivete qui il vostro messaggio</textarea>
</td>
</tr>
<tr>
<td><label></label>
</td>
<td><label>
<input type="checkbox" name="Autorizzazione" value="Si" checked="checked"> Autorizzo il sito miosito.it al trattamento dei dati personali ai sensi del D.Lgs. n. 196/2003</input>
</label></td>
<tr>
<td><label>
<input type="submit" name="submit" id="submit" value="Invia" /> <input type="reset" name="cancella" id="cancella" value="Ripristina" />
</label></td>
</tr>
</table>
</form>
[/HTML]invio.php
[PHP]
<?php
// indirizzo di chi riceve la mail è sottolineato ma nel codice non sottilineatelo
if ((trim($_POST['nome']) != "") && (trim($_POST['cognome']) != "") && (trim($_POST['mail']) != "") && (trim($_POST['body']) != "")) { //questo fa si che se i campi "oggetto" e "messaggio" sono vuoti la form non invia nessuna mail
$to = " \n [email protected] ";
$headers = "From: " . $_POST['mail'] . "\n"; // soggetto della mail
$subject = "Modulo proveniente da miosito.it"; // corpo messaggio
$body = "Contenuto del modulo:\n\n";
$body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n"; //indirizzo e-mail che manda la mail, come si vede riprende l'id del campo destinato all'inserimento della mail del mittente
$body .= "Nome: " . trim(stripslashes($_POST["nome"])) . "\n"; //nome mittente
$body .= "Cognome: " . trim(stripslashes($_POST["cognome"])) . "\n"; //cognome mittente
$body .= "Email: " . trim(stripslashes($_POST["mail"])) . "\n"; //mail mittente
$body .= "Telefono: " . trim(stripslashes($_POST["telefono"])) . "\n"; //telefono mittente
$body .= "Forma di consulenza: " . trim(stripslashes($_POST["telefono"])) . "\n"; //telefono mittente
$body .= "Oggetto: " . trim(stripslashes($_POST["object"])) . "\n"; //oggetto del messaggio
$body .= "Testo: " . trim(stripslashes($_POST["body"])) . "\n"; //messaggio // invio mail
mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE...
echo "La sua mail è stata inviata con successo. Grazie per averci contattato! Riceverà una risposta nel più breve tempo possibile";
} else {// altrimenti
echo "Deve compilare i campi obbligatori prima di inviare. Torni indietro per compilare i dati mancanti";
}
?>
[/PHP]Grazie anticipatamente per l'aiuto!
-
ciao ragazzi io ho un problema con questo form quando invio mi comprare questa scritta : No input file specified.
cosa devo fare?
-
Riprendo una discussione vecchia ma ho bisogno di un'informazione
Nel sito che sto costruendo ho creato (e poi modificato) un form per contattarmi tramite pForm
file che ho salvato in htm e caricato nel mio spazio di hostingLa nota critica è quello dell'invio dei dati in email, ho seguito il passaggio in php ma continua a dirmi "deve compilare il form prima di inviare" (o qualcosa simile)
Ho copiato ed incollato il testo presente in questa discussione
<?php
// indirizzo di chi riceve la mail è sottolineato ma nel codice non sottilineatelo
if ((trim($_POST['object']) != "") && (trim($_POST['body']) != "")) { //questo fa si che se i campi "oggetto" e "messaggio" sono vuoti la form non invia nessuna mail
$to = " \n ";
$headers = "From: " . $_POST['mail'] . "\n";
// soggetto della mail
$subject = "Modulo proveniente da tuosito.it";// corpo messaggio
$body = "Contenuto del modulo:\n\n";$body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n"; //indirizzo e-mail che manda la mail, come si vede riprende l'id del campo destinato all'inserimento della mail del mittente
$body .= "Oggetto: " . trim(stripslashes($_POST["object"])) . "\n"; //oggetto del messaggio
$body .= "testo: " . trim(stripslashes($_POST["body"])) . "\n"; //messaggio// invio mail
mail($to, $subject, $body, $headers); // SE L'INOLTRO E' ANDATO A BUON FINE...echo "La mail è stata inviata con successo. Grazie per averci contattato";
} else {// altrimenti
echo "Deve compilare la form prima di inviare.";}
?>
sostituendo soltanto l'e-mail ed il sito...
Ma devo aggiungere altro? Perché vedo che altri inseriscono altri dettagli
Il form in html è questo<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ordina </title>
<link rel="stylesheet" type="text/css" href="Ordina_files/view.css" media="all">
<script type="text/javascript" src="Ordina_files/view.js"></script>
<script type="text/javascript" src="Ordina_files/calendar.js"></script>
</head>
<body class="no_guidelines firefox" id="main_body"><img id="top" src="Ordina_files/top.png" alt=""> <div id="form_container"> <form action="invio.php" method="post" id="modulo"> <h1><a>Ordina</a></h1> <form id="form_1012886" class="appnitro" method="post" action="/formbuilder/view.php"> <div class="form_description"> <h2>Ordina</h2> <p>Per ordinare compila il form, per
informazioni puoi contattarci all'indirizzo email o telefonicamente</p>
</div>
<ul><li id="li_1"> <label class="description" for="codice">Codice: </label> <div> <input id="codice" name="codice" class="element text medium" maxlength="255" type="text"> </div> </li> <li id="li_2"> <label class="description" for="dati">Dati Anagrafici </label> <span> <input id="nome" name="nome" class="element text" maxlength="255" size="8"> <label>Nome</label> </span> <span> <input id="cognome" name="cognome" class="element text" maxlength="255" size="14"> <label>Cognome</label> </span> </li> <li id="li_3"> <label class="description" for="indirizzo">Indirizzo </label> <div> <input id="via" name="via" class="element text large" type="text"> <label for="via">Via</label> </div> <div class="left"> <input id="comune" name="comune" class="element text medium" type="text"> <label for="comune">Città</label> </div> <div class="left"> <input id="CAP" name="CAP" class="element text medium" maxlength="15" type="text"> <label for="CAP">Codice Postale</label> </div> <div class="right"> <select class="element select medium" id="element_3_6" name="element_3_6"> <option value="" selected="selected"></option>
<option value="Afghanistan">Afghanistan</option>
<option value="Albania">Albania</option>
<option value="Algeria">Algeria</option>
<option value="Andorra">Andorra</option>
<option value="Antigua and Barbuda">Antigua and Barbuda</option>
<option value="Argentina">Argentina</option>
<option value="Armenia">Armenia</option>
<option value="Australia">Australia</option>
<option value="Austria">Austria</option>
<option value="Azerbaijan">Azerbaijan</option>
<option value="Bahamas">Bahamas</option>
<option value="Bahrain">Bahrain</option>
<option value="Bangladesh">Bangladesh</option>
<option value="Barbados">Barbados</option>
<option value="Belarus">Belarus</option>
<option value="Belgium">Belgium</option>
<option value="Belize">Belize</option>
<option value="Benin">Benin</option>
<option value="Bhutan">Bhutan</option>
<option value="Bolivia">Bolivia</option>
<option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option>
<option value="Botswana">Botswana</option>
<option value="Brazil">Brazil</option>
<option value="Brunei">Brunei</option>
<option value="Bulgaria">Bulgaria</option>
<option value="Burkina Faso">Burkina Faso</option>
<option value="Burundi">Burundi</option>
<option value="Cambodia">Cambodia</option>
<option value="Cameroon">Cameroon</option>
<option value="Canada">Canada</option>
<option value="Cape Verde">Cape Verde</option>
<option value="Central African Republic">Central African Republic</option>
<option value="Chad">Chad</option>
<option value="Chile">Chile</option>
<option value="China">China</option>
<option value="Colombia">Colombia</option>
<option value="Comoros">Comoros</option>
<option value="Congo">Congo</option>
<option value="Cook Islands and Niue">Cook Islands and Niue</option>
<option value="Costa Rica">Costa Rica</option>
<option value="Côte d'Ivoire">Côte d'Ivoire</option>
<option value="Croatia">Croatia</option>
<option value="Cuba">Cuba</option>
<option value="Cyprus">Cyprus</option>
<option value="Czech Republic">Czech Republic</option>
<option value="Denmark">Denmark</option>
<option value="Djibouti">Djibouti</option>
<option value="Dominica">Dominica</option>
<option value="Dominican Republic">Dominican Republic</option>
<option value="East Timor">East Timor</option>
<option value="Ecuador">Ecuador</option>
<option value="Egypt">Egypt</option>
<option value="El Salvador">El Salvador</option>
<option value="Equatorial Guinea">Equatorial Guinea</option>
<option value="Eritrea">Eritrea</option>
<option value="Estonia">Estonia</option>
<option value="Ethiopia">Ethiopia</option>
<option value="Fiji">Fiji</option>
<option value="Finland">Finland</option>
<option value="France">France</option>
<option value="Gabon">Gabon</option>
<option value="Gambia">Gambia</option>
<option value="Georgia">Georgia</option>
<option value="Germany">Germany</option>
<option value="Ghana">Ghana</option>
<option value="Greece">Greece</option>
<option value="Grenada">Grenada</option>
<option value="Guatemala">Guatemala</option>
<option value="Guinea">Guinea</option>
<option value="Guinea-Bissau">Guinea-Bissau</option>
<option value="Guyana">Guyana</option>
<option value="Haiti">Haiti</option>
<option value="Honduras">Honduras</option>
<option value="Hong Kong">Hong Kong</option>
<option value="Hungary">Hungary</option>
<option value="Iceland">Iceland</option>
<option value="India">India</option>
<option value="Indonesia">Indonesia</option>
<option value="Iran">Iran</option>
<option value="Iraq">Iraq</option>
<option value="Ireland">Ireland</option>
<option value="Israel">Israel</option>
<option value="Italy">Italy</option>
<option value="Jamaica">Jamaica</option>
<option value="Japan">Japan</option>
<option value="Jordan">Jordan</option>
<option value="Kazakhstan">Kazakhstan</option>
<option value="Kenya">Kenya</option>
<option value="Kiribati">Kiribati</option>
<option value="North Korea">North Korea</option>
<option value="South Korea">South Korea</option>
<option value="Kuwait">Kuwait</option>
<option value="Kyrgyzstan">Kyrgyzstan</option>
<option value="Laos">Laos</option>
<option value="Latvia">Latvia</option>
<option value="Lebanon">Lebanon</option>
<option value="Lesotho">Lesotho</option>
<option value="Liberia">Liberia</option>
<option value="Libya">Libya</option>
<option value="Liechtenstein">Liechtenstein</option>
<option value="Lithuania">Lithuania</option>
<option value="Luxembourg">Luxembourg</option>
<option value="Macedonia">Macedonia</option>
<option value="Madagascar">Madagascar</option>
<option value="Malawi">Malawi</option>
<option value="Malaysia">Malaysia</option>
<option value="Maldives">Maldives</option>
<option value="Mali">Mali</option>
<option value="Malta">Malta</option>
<option value="Marshall Islands">Marshall Islands</option>
<option value="Mauritania">Mauritania</option>
<option value="Mauritius">Mauritius</option>
<option value="Mexico">Mexico</option>
<option value="Micronesia">Micronesia</option>
<option value="Moldova">Moldova</option>
<option value="Monaco">Monaco</option>
<option value="Mongolia">Mongolia</option>
<option value="Montenegro">Montenegro</option>
<option value="Morocco">Morocco</option>
<option value="Mozambique">Mozambique</option>
<option value="Myanmar">Myanmar</option>
<option value="Namibia">Namibia</option>
<option value="Nauru">Nauru</option>
<option value="Nepal">Nepal</option>
<option value="Netherlands">Netherlands</option>
<option value="New Zealand">New Zealand</option>
<option value="Nicaragua">Nicaragua</option>
<option value="Niger">Niger</option>
<option value="Nigeria">Nigeria</option>
<option value="Norway">Norway</option>
<option value="Oman">Oman</option>
<option value="Pakistan">Pakistan</option>
<option value="Palau">Palau</option>
<option value="Panama">Panama</option>
<option value="Papua New Guinea">Papua New Guinea</option>
<option value="Paraguay">Paraguay</option>
<option value="Peru">Peru</option>
<option value="Philippines">Philippines</option>
<option value="Poland">Poland</option>
<option value="Portugal">Portugal</option>
<option value="Puerto Rico">Puerto Rico</option>
<option value="Qatar">Qatar</option>
<option value="Romania">Romania</option>
<option value="Russia">Russia</option>
<option value="Rwanda">Rwanda</option>
<option value="Saint Kitts and Nevis">Saint Kitts and Nevis</option>
<option value="Saint Lucia">Saint Lucia</option>
<option value="Saint Vincent and the Grenadines">Saint Vincent and the Grenadines</option>
<option value="Samoa">Samoa</option>
<option value="San Marino">San Marino</option>
<option value="Sao Tome and Principe">Sao Tome and Principe</option>
<option value="Saudi Arabia">Saudi Arabia</option>
<option value="Senegal">Senegal</option>
<option value="Serbia and Montenegro">Serbia and Montenegro</option>
<option value="Seychelles">Seychelles</option>
<option value="Sierra Leone">Sierra Leone</option>
<option value="Singapore">Singapore</option>
<option value="Slovakia">Slovakia</option>
<option value="Slovenia">Slovenia</option>
<option value="Solomon Islands">Solomon Islands</option>
<option value="Somalia">Somalia</option>
<option value="South Africa">South Africa</option>
<option value="Spain">Spain</option>
<option value="Sri Lanka">Sri Lanka</option>
<option value="Sudan">Sudan</option>
<option value="Suriname">Suriname</option>
<option value="Swaziland">Swaziland</option>
<option value="Sweden">Sweden</option>
<option value="Switzerland">Switzerland</option>
<option value="Syria">Syria</option>
<option value="Taiwan">Taiwan</option>
<option value="Tajikistan">Tajikistan</option>
<option value="Tanzania">Tanzania</option>
<option value="Thailand">Thailand</option>
<option value="Togo">Togo</option>
<option value="Tonga">Tonga</option>
<option value="Trinidad and Tobago">Trinidad and Tobago</option>
<option value="Tunisia">Tunisia</option>
<option value="Turkey">Turkey</option>
<option value="Turkmenistan">Turkmenistan</option>
<option value="Tuvalu">Tuvalu</option>
<option value="Uganda">Uganda</option>
<option value="Ukraine">Ukraine</option>
<option value="United Arab Emirates">United Arab Emirates</option>
<option value="United Kingdom">United Kingdom</option>
<option value="United States">United States</option>
<option value="Uruguay">Uruguay</option>
<option value="Uzbekistan">Uzbekistan</option>
<option value="Vanuatu">Vanuatu</option>
<option value="Vatican City">Vatican City</option>
<option value="Venezuela">Venezuela</option>
<option value="Vietnam">Vietnam</option>
<option value="Yemen">Yemen</option>
<option value="Zambia">Zambia</option>
<option value="Zimbabwe">Zimbabwe</option></select> <label for="stato">Stato</label> </div> </li> <li id="li_4"> <label class="description" for="email">Email </label> <div> <input id="email" name="email" class="element text medium" maxlength="255" type="text"> </div> </li> <li id="li_5"> <label class="description" for="telefono">Telefono/Cellulare </label> <div> <input id="telefono" name="telefono" class="element text medium" maxlength="255" type="text"> </div> </li> <li id="li_6"> <label class="description" for="comunicazioni">Comunicazioni aggiuntive o inserimento più codici se ordine multiplo: </label> <div> <textarea id="comunicazioni" name="comunicazioni" class="element textarea small"></textarea> </div> </li> <li class="buttons"> <input name="form_id" value="1012886" type="hidden"> <input id="saveForm" class="button_text" name="submit" value="Invia" type="submit"> </li> </ul> </form> <div id="footer"> Generated by <a href="phpform.org/">pForm</a> </div> </div> <img id="bottom" src="Ordina_files/bottom.png" alt="">
</body></html>
Grazie anticipatamente per l'aiuto
-
Ho dovuto rimuovere indirizzo email e link preceduti da http per le regole del forum
-
qualcuno può dirmi dove sbaglio??
- PAGINA "modulo.html"
[TABLE="class: outer_border, width: 500"]
[TD]<form action="invio.php" method="post" id="modulo">
<table>
<tr>
<td>Email address*</td>
<td><label>
<input name="mail" type="text" id="mail" />
</label></td>
</tr>
<tr>
<td>Name*</td>
<td><label>
<input name="object" type="text" id="object" />
</label></td>
</tr>
<tr>
<td>Message*</td>
<td>
<textarea name="body" cols="30" rows="5" id="body"></textarea>
</td>
</tr>
<tr>
<td><label></label>
</td>
<td><label>
<input type="submit" name="submit" id="submit" value="Send" /> <input type="reset" name="cancella" id="cancella" value="Delete" />
</label></td>
</tr>
</table>
</form>
[/TD]
[/TR]
[/TABLE]- PAGINA "invio.php**"
**[TABLE="class: outer_border, width: 500"]
[TD]<?php
if ((trim($_POST['object']) != "") && (trim($_POST['body']) != "")) { //
$to = "[email protected]";
$headers = "From: " . $_POST['mail'] . "\n";
$subject = "Modulo proveniente da miosito";
$body = "Contenuto del modulo:\n\n";
$body .= "Inviata da: " . trim(stripslashes($_POST["mail"])) . "\n";
$body .= "Name: " . trim(stripslashes($_POST["name"])) . "\n";
$body .= "testo: " . trim(stripslashes($_POST["body"])) . "\n";
mail($to, $subject, $body, $headers);
echo "Your message was sent successfully";
} else {
echo "His message was not sent";
}[/TD]
[/TR]
[/TABLE]Invio le pagina sul mio ftp, quando vado ad aprire la pagina modulo inserisco nome, e-mail e testo ma poi se clicco su invia rimane tutto bloccato.
P.S. in rosso trovate quello che ho modificato dallo script originale
-
Ciao Pizzetto e benvenuto nel ForumGT
da dove testi le tue pagine?
-
ciao sono nuovo del forum.
Volevo saper prima d'iniziare i codici php una pagina la devo salvare con estensione php e l'altra uguale ma con estensione html? e cosi. chi mi spiega semplicissimo come devo fare grazie.