|
|
|
| Вот пытаюсь прикрутить провепку, к скрипту отправки письма с вложением...
Код
<?php
$mail_to = "моё мыло" ;
$_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject']));
$_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg']));
$picture = "";
// Если поле выбора вложения не пустое - закачиваем его на сервер
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
------------------------------------------------------------------------------то что я пытался приделать-----------------
$path=strrchr($_FILES['image']['name'],".");
if($path!='.gif' && $path!='.GIF' && $path!='.jpg' && $path!='.JPG'){
exit("Не верный формат изображения");
}
---------------------------------------------------------------------------------------------------------------------------------------
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
$thm = $_POST['mail_subject'];
$msg = $_POST['mail_msg'];
// Отправляем почтовое сообщение
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture);
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $thm, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'koi8-r'; // или $kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
?>
|
Всё время выбивает - неверный формат - хоть формат и верный. Без вложения всё ок.
Помогите прикрутить сюда проверку файла....требуемые допустимые расширения - | |
|
|
|
|
|
|
|
для: Sasha
(12.03.2006 в 19:40)
| | ' | |
|
|
|
|
|
|
|
для: Sasha
(12.03.2006 в 19:40)
| | Ммммм...что никто не поможет? | |
|
|
|
|
|
|
|
для: Sasha
(13.03.2006 в 14:39)
| | Почему же не поможем? Поможем:
$path=explode(".", $_FILES['image']['name']);
$path=$path[count($path)-1];
if(!preg_match('/^(gif|jpe?g)$/',$path)){
exit("Не верный формат изображения");
} | |
|
|
|
|
|
|
|
для: XPraptor
(13.03.2006 в 14:47)
| | К сожалению не работает :((
Файлы .gif и .jpg не опознаёт, пишет _ Неверный формат изображения. | |
|
|
|
|
|
|
|
для: Sasha
(15.03.2006 в 22:41)
| | Может возможно устроить проверку расширения как-то по другому?
Подскажите пожалуйста.. | |
|
|
|
|
|
|
|
для: Sasha
(16.03.2006 в 18:50)
| |
<?
$path=substr($_FILES['mail_file']['name'],strrchr($_FILES['mail_file']['name'],"."));
if($path!='.gif' && $path!='.GIF' && $path!='.jpg' && $path!='.JPG'){
exit("неверный формат изображения");
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(16.03.2006 в 19:30)
| | У меня ничего не работает :(((
Наверно я что-то подставляю не так, посмотрите :
<?php
$mail_to = ".....мыло....." ;
$_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject']));
$_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg']));
$picture = "";
// Если поле выбора вложения не пустое - закачиваем его на сервер
$path=substr($_FILES['mail_file']['name'],strrchr($_FILES['mail_file']['name'],"."));
if($path!='.gif' && $path!='.GIF' && $path!='.jpg' && $path!='.JPG'){
exit("неверный формат111 изображения");
}
if (!empty($_FILES['mail_file']['tmp_name']))
{
// Закачиваем файл
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
$thm = $_POST['mail_subject'];
$msg = $_POST['mail_msg'];
// Отправляем почтовое сообщение
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture);
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($to, $thm, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "--$boundary\n";
$kod = 'koi8-r'; // или $kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";
if(!mail($to, $thm, $multipart, $headers))
{
echo "К сожалению, письмо не отправлено";
exit();
}
}
echo "Письмо отправлено";
?>
|
Добавляю .gif вложение, и всё.
Стопориться - неверный формат111 изображения - | |
|
|
|
|
|
|
|
для: Sasha
(21.03.2006 в 15:27)
| | А так?
$path=substr(strrchr($_FILES['mail_file']['name'],"."), 1);
if(strcasecmp($path,'gif') && strcasecmp($path,'jpg'))
exit("Неверный формат изображения");
else
echo $_FILES['mail_file']['name']. " - файл с расширением $path";
|
| |
|
|
|
|
|
|
|
для: Trianon
(21.03.2006 в 16:18)
| | Так получилось, но не совсем. Изображение доходит, но полностью обрезается имя и расширение, вернее приходит файл имеющий имя как расширение. Тоесть отправляли фотку 22.jpg а приходит файл jpg
И без вложения письмо нехочет отправляться нивкакую. Говорит - неверный формат изображения. | |
|
|
|
|
|
|
|
для: Sasha
(16.03.2006 в 18:50)
| | я иногда использую функцию getimagesize()
У нее элемент номер 2 - это тип файла. очень удобно:
1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. | |
|
|
|
|
|
|
|
для: Loki
(16.03.2006 в 22:36)
| | Странно, почему так обрезается.... | |
|
|
|
|
|
|
|
для: Sasha
(23.03.2006 в 18:38)
| | обрезается что? | |
|
|
|
|
|
|
|
для: Loki
(23.03.2006 в 18:52)
| | Изображение доходит, но полностью обрезается имя и расширение, вернее приходит файл имеющий имя как расширение. Тоесть отправляли фотку 22.jpg а приходит файл jpg
И без вложения письмо нехочет отправляться нивкакую. Говорит - неверный формат изображения. | |
|
|
|
|
|
|
|
для: Sasha
(23.03.2006 в 19:04)
| | Аааа, помогите!
Оказывается после использования этого скрипта, передаваемые файлы остаются в папке с ним (копии), как можно сделать, чтоб после передачи они удалялися??? | |
|
|
|