Buongiorno, ho fatto un form per invio email più allegato, questo:
Codice PHP:
<?php
// se viene inviato form controlla
if (isset($_GET['action']) && $_GET['action'] == "inserimento") { // 1
// controllo dei campi in php
if(($_POST['nome'] == "")){
echo "<script>";
echo "alert('I campi sono obbligatori');";
echo "</script>";
}
elseif (!eregi ('^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+.[a-z]{2,4}$', stripslashes(trim($_POST['email']))))
{
echo "<script>";
echo "alert('Inserire un indirizzo e-mail valido');";
echo "</script>";
}
else {
// Recuperiamo i valori dal form e aggiungiamo la nostra email dove ricevere il file allegato con la mail
$to = "werwolfe@werwolfe.it";
$mail = "info@clarencemanagement.com";
$oggetto = "Miss Ondina";
$messaggio .= "\n";
$messaggio .= "Nome =" . $_POST['nome'] . "\n";
$messaggio .= "Cognome =" . $_POST['cognome'] . "\n";
$messaggio .= "Telefono =" . $_POST['telefono'] . "\n";
$messaggio .= "Cell =" . $_POST['cell'] . "\n";
$messaggio .= "Hobby =" . $_POST['hobby'] . "\n";
$messaggio .= "Sopranome =" . $_POST['sopranome'] . "\n";
$messaggio .= "Sport=" . $_POST['sport'] . "\n";
$messaggio .= "Età=" . $_POST['eta'] . "\n";
$messaggio .= "altezza=" . $_POST['altezza'] . "\n";
$messaggio .= "Senot=" . $_POST['seno'] . "\n";
$messaggio .= "Vita=" . $_POST['vita'] . "\n";
$messaggio .= "Taglia=" . $_POST['taglia'] . "\n";
$messaggio .= "Rilascio dati=" . $_POST['checkPrivacy'] . "\n";
$messaggio .= "Email=" . $email . "\n";
$messaggio .= "\n";
$messaggio .= "Miss Ondina\n";
// Creiamo le variabili per il file attachment
$attachment = $_FILES['attachment']['tmp_name'];
$attachment_type = $_FILES['attachment']['type'];
$attachment_name = $_FILES['attachment']['name'];
$headers = "From: " . $to;
// Verifichiamo se è stato eseguito l'upload del file
if (is_uploaded_file($attachment))
{
// usiamo la funzione fopen e fread per aprire e leggere il file e poi chiudiamo con fclose
$file = fopen($attachment,’rb’);
$data = fread($file, filesize($attachment));
fclose($file);
// Codifichiamo il file adattandolo a base64 usando la funzione chunk_split di php
$data = chunk_split(base64_encode($data));
/* Creiamo una variabile per un divisore che deve divir
dere la parte testuale del messaggio dal file stesso altrimenti riceverete una serie illeggibili di caratteri
*/
$func_rand = md5(time());
$mime_divisor = "==Multipart_divisor_x{$func_rand}x";
// Aggiungo le intestazioni necessarie per l’attachment
$headers .= "\nMIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/mixed;\n";
$headers .= "divisor=\"{$mime_divisor}\"";
// Definisco il tipo di messaggio (MIME/multi-part)
$body .= "This is a multi-part message in MIME format.\n\n";
// Mettiamo il separatore
$body .= "–{$mime_divisor}\n";
// Questa è la parte “testuale” del messaggio
$body .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$body .= "Content-Transfer-Encoding: 7bit\n\n";
$body .= "From :" . $mail . "\n\n";
$body .= $messaggio . "\n\n";
// Ancora il separatore alla fine del contenuto testuale della mail
$body .= "–{$mime_divisor}\n";
// Adesso aggiungiamo l’allegato alla mail
$body .= "Content-Disposition: attachment;\n";
$body .= "filename=\"{$attachment_name}\"\n";
$body .= "Content-Transfer-Encoding: base64\n\n";
$body .= $data . "\n\n";
// chiudo con il separatore
$body .= "–{$mime_divisor}–\n";
}
else
{
$body = $testomessaggio;
}
// Invio la mail
if (mail($to, $oggetto, $body, $headers))
{
echo "[i]Mail e allegato inviati correttamenti[/i]";
}else{
echo "[i]Ci sono problemi, verifica il codice php[/i]";
}
}
}
?>
Ma non funge mi da questi errori:
Codice PHP:
Warning: fopen(/tmp/phpz2voXx) [function.fopen]: failed to open stream: Success in /web/htdocs/www.missondinasport.it/home/home/modulo.php on line 66
Warning: fread(): supplied argument is not a valid stream resource in /web/htdocs/www.missondinasport.it/home/home/modulo.php on line 68
Warning: fclose(): supplied argument is not a valid stream resource in /web/htdocs/www.missondinasport.it/home/home/modulo.php on line 70
Come posso risolvere? grazie