Form mail php errore invio

fla88vus

Nuovo Utente
20 Set 2017
3
0
1
36
Buongiorno a tutt*,

vi posto il codice che ho scritto per ricevere per mail i dati di un form, appena clicco invia messaggio, la mail mi arriva ma il contenuto è vuoto, e tutti i parametri impostati non funzionano. Potreste aiutarmi??

Dovrei validare anche l'invio di un allegato come suggerisce il form, ma non riesco.


PHP:
if (isset($_POST['Send message'])){
    $mail_subject="Booking & Enquiries";
    $intestazioni  = "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
    //intestazioni per il mittente
    $intestazioni .= "From:". $_POST['Name'];
    $messaggio="<html><head><title></title></head><body>"; //non occorre specificare attributi per il tag title, tuttavia li inseriamo per correttezza. Tenete presente che potete inserire style.
    $messaggio.="<font face=\"verdana\" size=\"2\">Questa email ti è stata inviata dal tuo sito.<br> L'utente " . $_POST['Name'] . " (a cui puoi rispondere a: <a href=\"mailto:" . $_POST['Email'] . "\">" . $_POST['Email'] . "</a>),  (o chiamarlo al numero: <a href=\"tel:" . $_POST['Telephone'] . "\">" . $_POST['Telephone'] . "</a>),ti ha contattato per un appuntamnto che vorrebbe fissare  " . $_POST['When'] . ".<br>Di seguito le richieste di dell'utente". $_POST['Name']." : " . $_POST['message'] . "</font>";
    $messaggio.="</body></html>";
    mail( "mia@mail", "Invio email da: " . $_POST['Name'], $messaggio, $intestazioni );
    mail( "mia@mail", "Invio email da: " . $_POST['Name'], $messaggio, $intestazioni );
    if (mail($mail_to , $email_from, $messaggio, $intestazioni))
  {
  echo "Messaggio inviato con successo.";
  }else{
  echo "Si &egrave; verificato un errore nell'invio.";
  }
 }else{
    $mail_to="mia@mail";
    $mail_from=$_POST['Email'];
    $mail_subject="Booking & Enquiries";
    $mail_body="$messaggio";
    $mail_in_html="MIME-Version:1.0\r\n";
    $mail_in_html.="Content-type:text/html;charset=iso-8859-1\r\n";
    $mail_in_html.="From:$mail";
    mail($mail_to,$mail_subject,$mail_body,$mail_in_html);
 }

Form:

HTML:
<form method="post" action="convalida_form.php" enctype="multipart/form-data" name="modulo_prenotazione" >
<input type="text" name="Name"  value="Your Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Your Name';}" required="">
<input type="email"  name="Email" value="Best Email to reach you" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Best email to reach you';}" required="">
<input type="text" name="Telephone" value="Contact No." onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Contact No.';}" required="">
<br>
<strong> Place for tattoo </strong> <br>
<select style="width:100%" class="select_form" name="Place" value="<?php echo $_POST['Place'];?>"  >
<option value=""> </option>
<option value="Ankle">Ankle</option>
<option value="Back - full">Back - full</option>
<option value="Back - lower">Back - lower</option>
<option value="Back - upper">Back - upper</option>
<option value="Behind ear">Behind ear</option>
<option value="Calf">Calf</option>
<option value="Chest / sternum">Chest / sternum</option>
<option value="Foot">Foot</option>
<option value="Forearm - inner">Forearm - inner</option>
<option value="Forearm - outer">Forearm - outer</option>
<option value="Full sleeve">Full sleeve</option>
<option value="Hand">Hand</option>
<option value="Hip">Hip</option>
<option value="Neck">Neck</option>
<option value="Ribs">Ribs</option>
<option value="Shin">Shin</option>
<option value="Shoulder">Shoulder</option>
<option value="Stomach">Stomach</option>
<option value="Thigh - back">Thigh - back</option>
<option value="Thigh - front">Thigh - front</option>
<option value="Throat">Throat</option>
<option value="Upper arm - inner">Upper arm - inner</option>
<option value="Upper arm - outer">Upper arm - outer</option>
<option value="Wrist">Wrist</option>
<option value="Other -">Other - </option>
</select>
<br>
<br>
<strong>Rough Size - Height... cm Width... cm</strong> <br>
<input style ="width:100%" type="text" name="Rough" value="Rough Size" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Rough Size ';}" required="">
<br>
<br>
<strong> When would be the ideal time for you to get your tattoo?</strong> <br>
<select style="width:100%" class="select_form"  value"<?php echo $_POST['When'];?>" name="When">
<option > </option>/*funzionava con il value vuoto*/
<option value="Today">Today</option>
<option value="Next few days">Next few days</option>
<option value="Within a week">Within a week</option>
<option value="Within two weeks">Within two weeks</option>
<option value="Within a month">Within a month</option>
<option value="Within two months">Within to months</option>
<option value="After two months">After to months</option>
</select>
<br>
<br>
<strong>References (images)</strong> <br>
<div style="background-color:#F3F3F3; height:80%; width:100% ; border:dashed;border-color:#9B9B9B";> <br>
<h2 style="color:#9B9B9B; font-size:15px; text-align:center">drop files here or</h2>
<br>
<input type="file" value="Select file" name="attachment"style="display: block; margin:0 auto; width:88px" id="foto[]">
<br>
</div>
<br>
Accepted file types: jpg, gif, png, jpeg, pdf. <br>
<br>
<strong>Tattoo Description</strong> <br>
Eg; colour, style, subjects, background etc <br>
<textarea cols="20" rows="7" name="message" value="<?php echo $_POST['message'];?>" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = '';}" required></textarea>
<br>
<br>
<strong>Legal*</strong>
<input type="checkbox" name="autorizzo"  id="autorizzo_0">
<br>
I am 18 years of age (or older) with a valid form of identification <br>
<br>
<input type="submit" value="Send message" >
</form>
 
Ultima modifica di un moderatore:
ciao
salvo quanto detto giustamente da jonnino2004, dovresti verificare i nomi dei campi di input del form con i nomi dei vari $_POST
considera es che tu fai isset($_POST['Send message'] ma non esiste un campo di input che si chiami a quel modo
correggi
<input type="submit" value="Send message" >
in
<input type="submit" name ="Send message" value="Send message" >
anche se sarebbe preferibile nei name e relativi $_post non usare spazi nei nomi

p.s.
poi racchiudi sempre il codice tra gli appositi bccode
 
Ciao, grazie dei consigli. Due quesiti a tal proposito, nell'input submit dovrei provare a cambiare "Send message" con "Send_message" per esempio. Questione a parte per le prossime discussioni, anche se ho letto il regolamento come racchiudo il codice con gli appositi bccode? Terza ed ultima domanda la libreria PHP mailer la scarico e la inserisco nella root in una ct chiamata PHP e poi faccio un require? Posso fare anche upload con PHP mailer? Scusate ma ancora ho difficoltà con PHP. Grazie per la disponibilità. FLAVUS
 
ciao
intanto per i bccode:
1) puoi usare la quartultima iconcina della barra di formattazione del post selezioni inserisci codice, incolli il codice nella finestra, selzioni il tipo "generico" "php" o "html" e dai l'ok, automaticamente il codice viene postato racchiuso
2) guarda che non scrivo esattamente altrimenti si forma il codice, all'inizio del codice racchiuso da parentesi quadre [...] scrivi il tipo di codice o PHP o CODE o HTML alla fine la chiusura [/...], simile ai tag html

per i nomi va bene unirli con l'undescore pinco_pallo, oppure tutti attaccati

fai il downloda della classe, dovrebbe formarti una cartella chiamata phpmailler al suo interno (in funzione della versione che scarichi) dovresti trovare alcuni file tra cui class.phpmailer.php (la classe da usare) e class.smtp.php che viene usata da phpmailer in caso tu inviassi via smtp
poi nel file php dove fai l'invio metterai
PHP:
require_once "phpmailler/class.phpmailer.php";
e tutto quello che ti serve per istanziarla e qui
https://www.mrw.it/php/inviare-email-classe-phpmailer_7047.html
un tutorial come utilizzarla (se non ricordo male anche dove scaricarla)
 
Alcuni giorni fa ricercavo uno strumento online per la creazione moduli con download di tutti i codici sorgenti e senza limiti, ho trovato Fantastic Form Builder e vorrei consigliartelo perché veramente valido: puoi creare qualsiasi tipologia di modulo (email, inserimento dati in database) e scaricarti tutti i codici sorgente, senza limiti ;) Vi lascio il link: fantastic-form-builder.netsons.org
 

Discussioni simili