con l aiuto di un libro ho fatto questo script:
form.html
<form action="phpemail.php" method="post" enctype="multipart/form-data">
<label>
oggetto:<input type="text" name="subject" />
</label>
</p>
inserisci un messaggio e premi Invio:
<textarea name="message" cols="50" rows="5"></textarea>
</p>
<label>
<input type="file" name="allegato" />
</label>
<input type="submit" value="Invio" />
</form>
phpemail.php
<?
$destinatario = "censura@censura.censura";
$messaggio = $_REQUEST["message"];
$subject = $_REQUEST["subject"];
$oggetto = $_REQUEST["allegato"];
$attachment_MIME_type = "image/jpeg";
$handle = fopen($oggetto, "rb");
$data = fread ($handle, filesize($oggetto));
fclose($handle);
$boundary = "---Multipart_Boundary---";
$headers = "n\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;\n" .
" boundary=\"" . $boundary . "\"";
$data = chunk_split(base64_encode($data));
$text = "--" . $boundary . "\n" .
"Content-Type:text/plain\nContent-Transfer-Encoding: 7bit\n\n" .
$messaggio . "\n\n--" . $boundary . "\n" .
"Content-Type: " . $attachment_MIME_type . ";\n name=\"" .
$oggetto . "\"\nContent-Transfer-Encoding: base64\n\n" .
$data . "\n\n--" . $boundary . "--\n";
$result = @mail($to, $subject, $text, $headers);
if($result) {
echo "messaggio inviato con successo";
} else {
echo "messaggio non inviato";
}
?>
mi dice:
Notice: Undefined index: allegato in c:\programmi\easyphp1-7\www\invio email\phpemail.php on line 13
Warning: fread(): supplied argument is not a valid stream resource in c:\programmi\easyphp1-7\www\invio email\phpemail.php on line 16
Warning: fclose(): supplied argument is not a valid stream resource in c:\programmi\easyphp1-7\www\invio email\phpemail.php on line 17
messaggio non inviato
le linee in questione sono:
line 13: $oggetto = $_REQUEST["allegato"];
line 16: $data = fread ($handle, filesize($oggetto));
line 17: fclose($handle);
dove sbaglio?