1 2012-11-10 12:03:00

Тема: Форма контактов с отправкой файла

Пытаюсь привязать файл к форме отправки сообщения (плагин contatcs) по этой схеме - http://www.php-mail.ru/?id=4.

В template-cms - все отлично получилось. Вот мой поправленный плагин - http://forum.template-cms.ru/post/4055/#p4055

Но для monstra не заработало в лоб. Может кто глянет чего не так. Вот код плагина с правками.
Сообщение отправляется, но не привязывается файл.



     */
    class Contact {
        public static function _shorcode($attributes) {
            return Contact::form($attributes['recipient']);
        }
        public static function form($recipient) {
            $name  = Request::post('contact_name'); 
            $email = Request::post('contact_email');                    
            $body  = Request::post('contact_body'); 
            $errors = array();
            if (Request::post('contact_submit')) {
                if (Security::check(Request::post('csrf'))) {
                    if (Request::post('contact_name') == '' || Request::post('contact_email') == '' || Request::post('contact_body') == '') {
                        $errors['contact_empty_fields'] = __('Empty required fields!', 'contact');
                    }
                    if ( ! Valid::email(Request::post('contact_email'))) {
                        $errors['contact_email_not_valid'] = __('Email address is not valid!', 'contact');
                    }
                    if (Option::get('captcha_installed') == 'true' && ! CryptCaptcha::check(Request::post('answer'))) { 
                        $errors['users_captcha_wrong'] = __('Captcha code is wrong', 'users');
                    }
                    if (count($errors) == 0) {
                $time = date('H:i:s');     
                $date = date("d.m.y");
                $mess = ' 
                    Дата отправки письма: '.$date.', время:  '.$time.' 

Имя: '.Request::post('contact_name').' E-mail: '.Request::post('contact_email').' Текст сообщения: '.Request::post('contact_body').' Отзыв: '.Request::post('review'); require 'class.phpmailer.php'; $mail = new PHPMailer(); $mail->From = 'mail@site.ru'; // от кого $mail->FromName = 'site.ru'; // от кого $mail->AddAddress('mne@gmail.com', 'Мне'); // кому - адрес, Имя $mail->IsHTML(true); // выставляем формат письма HTML $mail->Subject = 'С сайта'; // тема письма // если был файл, то прикрепляем его к письму if(isset($_FILES['foto'])) { if($_FILES['foto']['error'] == 0){ $mail->AddAttachment($_FILES['foto']['tmp_name'], $_FILES['foto']['name']); } } $mail->Body = $mess; if (!$mail->Send()) { Notification::set('error', __('A Letter was not sent!', 'contact')); } if (!empty($_POST['submit'])) { send_mail(); Notification::set('success', __('A letter has been sent!', 'contact')); Request::redirect(Page::url()); } } } else { die('csrf detected!'); } } return View::factory('contact/views/frontend/form') ->assign('name', $name) ->assign('email', $email) ->assign('body', $body) ->assign('errors', $errors) ->render(); } public static function display($recipient) { echo Contact::form($recipient); } }

Сайт loader

Поделиться

2 2012-11-10 12:07:15

Re: Форма контактов с отправкой файла

смотрю есть require 'class.phpmailer.php';  -  подключается вообще ? путь к нему правильный ?

Follow me: Twitter | GitHub | Coderwall

Стань спонсором проекта.

Сайт Awilum

Поделиться

3

Re: Форма контактов с отправкой файла

Ну дальше используются функции send_mail() и Send(), которые в этом файлике объявлены. И раз письмо приходит - то наверняка файл подключается.

Сайт loader

Поделиться