Ciao a tutti,
devo inserire in un sito in html un form di invio dati con upload di un file, il tutto da inviare via mail. Sono riuscita ad impostare i due file (creazione del form in .html e file .php per controllare l'invio della mail e l'upload del file) e tutto funziona.
Adesso non so come impostare il codice per rendere tutti i campi obbligatori, premetto che non sono esperta in php. Ho provato ma al momento l'unico errore mi compare quando non carico il file, posso anche lasciare tutti i campi vuoti ma invia comunque la mail; non mi compare nemmeno il messaggio che ho impostato ma piuttosto due righe di errore col codice annesso.
Questo è il codice che ho impostato:
Qualcuno potrebbe darmi una mano col codice?
Grazie mille
devo inserire in un sito in html un form di invio dati con upload di un file, il tutto da inviare via mail. Sono riuscita ad impostare i due file (creazione del form in .html e file .php per controllare l'invio della mail e l'upload del file) e tutto funziona.
Adesso non so come impostare il codice per rendere tutti i campi obbligatori, premetto che non sono esperta in php. Ho provato ma al momento l'unico errore mi compare quando non carico il file, posso anche lasciare tutti i campi vuoti ma invia comunque la mail; non mi compare nemmeno il messaggio che ho impostato ma piuttosto due righe di errore col codice annesso.
Questo è il codice che ho impostato:
PHP:
<?php
if(isset($_POST['title']) && isset($_POST['name']) && isset($_POST['surname']) && isset($_POST['email']) && isset($_POST['telephone']) && isset($_POST['fax']) )
{
$header="";
$msg="";
$boundary='--' . md5( uniqid(time()) );
$ctencoding="8bit";
$subject="Submission of a new Article";
$testo_del_messaggio="Title: $title\n";
$testo_del_messaggio.="Name: $name\n";
$testo_del_messaggio.="Surname: $surname\n";
$testo_del_messaggio.="Email: $email\n";
$testo_del_messaggio.="Telephone: $telephone\n";
$testo_del_messaggio.="Fax: $fax\n";
$to="[email protected]";
$from=$_POST['email'];
$fromname=$_POST['surname'];
$ctype="application/octet-stream";
$basename=$_FILES['all']['tmp_name'];
$name=$_FILES['all']['name'];
$header.="From: \"$fromname\" <$from>\nReturn-Path: $from\nX-Priority: 3\nTo: $to\n";
$header.="Mime-Version: 1.0\nContent-Type: multipart/mixed; \n boundary=\"$boundary\"\n";
$header.="Content-Transfer-Encoding: 8bit\n";
$msg .="This is a multi-part message in MIME format.\n--$boundary\n";
$msg .= "Content-Type: text/plain; charset=iso-8859-1\n";
$msg .= "Content-Transfer-Encoding: 8bit\n\n" . $testo_del_messaggio ."\n";
$msg .="--$boundary\nContent-type: $ctype;\n name=\"$name\"\n";
$msg .="Content-Transfer-Encoding: base64\nContent-Disposition: attachment\n filename=\"$name\"\n";
$linesz= filesize( $basename)+1;
$fp= fopen( $basename, 'r' );
$content = chunk_split(base64_encode(fread( $fp, $linesz)));
fclose($fp);
$msg .= chr(13) . chr(10).$content;
$result = @mail($to,$subject,$msg."\n",$header);
if($result){
echo "<p>Your data and your article have been successfully sent</p> <p>Thank you very much for your contribution!</p>"; }
else{
echo " <p>Error.<br>Impossible to send the data.</p><p>Riprova più tardi.</p>";
}
} else{ echo "<p>You didn't fill all the fields.</p><p>Missing fields:</p>";
if(!isset($_POST['title'])){ echo "Title<br>";}
if(!isset($_POST['name'])){ echo "Name<br>";}
if(!isset($_POST['surname'])){ echo "Surname<br>";}
if(!isset($_POST['email'])){ echo "Email<br>";}
if(!isset($_POST['telephone'])){ echo "Telephone<br>";}
if(!isset($_POST['fax'])){ echo "Fax<br>";}
}
?>
Qualcuno potrebbe darmi una mano col codice?
Grazie mille