Перейти к содержанию
staric

opencart_cms_2_1_0_2 Проблема со "Связаться с нами" и "Заказ из корзины"

Рекомендуемые сообщения

Проблема в следующем: при разных настройках почты работают разные функции.

 Как  и где можно исправить? Пробовал разные методы, но вернулся к исходному коду

Отправляет заказ,но не Связаться с нами.jpg

Отправляет Связаться с нами, но не отправляет заказ.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При настройках На первом скрине отправляется заказ на почту, но не работает "Связаться с нами". На втором скрине  с точностью наоборот: "Связаться с нами" работает, но не работает отправка заказа на почту.  Помогите ! Выручайте!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

откажитесь от mail.sru и все будет работать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, nikifalex сказал:

откажитесь от mail.sru и все будет работать

А есть другие варианты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Этот вопрос очень часто поднимался на форуме, перечитайте эти темы:

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
6 часов назад, agefremov сказал:

Этот вопрос очень часто поднимался на форуме, перечитайте эти темы:

 

Спасибо! Сейчас ознакомлюсь... Отпишусь...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исправил код как посоветовали. Итог: При настройки протокола SMTP , зарегистрированным и незарегистрированным пользователем "заказ из корзины" приходит на почту, т.е ВСЁ ХОРОШО:) , но не отправляется  сообщение из "Свяжитесь с нами: Выдает ошибку

 

Notice: Error: DATA not accepted from server! in /var/www/блаблабла.ru/system/library/mail.php on line 423

 

При настройки протокола ПОЧТА зарегистрированным ,сообщение ушло и пришло на почту т.е ВСЁ ХОРОШО:) но "заказ из корзины" ушел, но на почту не пришел :(  , Не зарегистрированным "сообщение и заказ" ушли, но на почту НЕ ПРИШЛИ :(

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

~/www/блаблабла.ru/catalog/controller/information/contact.php

 

<?php

// *       @copyright      OPENCART.PRO 2011 - 2015.

// *       @forum           http://forum.opencart.pro

// *       @source                      See SOURCE.txt for source and other copyright.

// *       @license          GNU General Public License version 3; see LICENSE.txt

 

class ControllerInformationContact extends Controller {

            private $error = array();

 

            public function index() {

                        $this->load->language('information/contact');

 

                        $this->document->setTitle($this->language->get('heading_title'));

 

                        if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {

                                   $mail = new Mail();

                                   $mail->protocol = $this->config->get('config_mail_protocol');

                                   $mail->parameter = $this->config->get('config_mail_parameter');

                                   $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');

                                   $mail->smtp_username = $this->config->get('config_mail_smtp_username');

                                   $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');

                                   $mail->smtp_port = $this->config->get('config_mail_smtp_port');

                                   $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

 

            $mail->setTo($this->config->get('config_email'));

                                   $mail->setFrom($this->config->get('config_email'));

                                   $mail->setSender(html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8'));

                                   $mail->setSubject(html_entity_decode(sprintf($this->language->get('email_subject'), $this->request->post['name']), ENT_QUOTES, 'UTF-8'));

                                   $mail->setText($this->request->post['enquiry'] . '\n\n' . $this->request->post['email']);

                                   $mail->send();

 

                                   $this->response->redirect($this->url->link('information/contact/success'));

                        }

 

                        $data['breadcrumbs'] = array();

 

                        $data['breadcrumbs'][] = array(

                                   'text' => $this->language->get('text_home'),

                                   'href' => $this->url->link('common/home')

                        );

 

                        $data['breadcrumbs'][] = array(

                                   'text' => $this->language->get('heading_title'),

                                   'href' => $this->url->link('information/contact')

                        );

 

                        $data['heading_title'] = $this->language->get('heading_title');

 

                        $data['text_location'] = $this->language->get('text_location');

                        $data['text_store'] = $this->language->get('text_store');

                        $data['text_contact'] = $this->language->get('text_contact');

                        $data['text_address'] = $this->language->get('text_address');

                        $data['text_telephone'] = $this->language->get('text_telephone');

                        $data['text_fax'] = $this->language->get('text_fax');

                        $data['text_open'] = $this->language->get('text_open');

                        $data['text_comment'] = $this->language->get('text_comment');

 

                        $data['entry_name'] = $this->language->get('entry_name');

                        $data['entry_email'] = $this->language->get('entry_email');

                        $data['entry_enquiry'] = $this->language->get('entry_enquiry');

 

                        $data['button_map'] = $this->language->get('button_map');

 

                        if (isset($this->error['name'])) {

                                   $data['error_name'] = $this->error['name'];

                        } else {

                                   $data['error_name'] = '';

                        }

 

                        if (isset($this->error['email'])) {

                                   $data['error_email'] = $this->error['email'];

                        } else {

                                   $data['error_email'] = '';

                        }

 

                        if (isset($this->error['enquiry'])) {

                                   $data['error_enquiry'] = $this->error['enquiry'];

                        } else {

                                   $data['error_enquiry'] = '';

                        }

 

                        $data['button_submit'] = $this->language->get('button_submit');

 

                        $data['action'] = $this->url->link('information/contact', '', 'SSL');

 

                        $this->load->model('tool/image');

 

                        if ($this->config->get('config_image')) {

                                   $data['image'] = $this->model_tool_image->resize($this->config->get('config_image'), $this->config->get('config_image_location_width'), $this->config->get('config_image_location_height'));

                        } else {

                                   $data['image'] = false;

                        }

 

                        $data['store'] = $this->config->get('config_name');

                        $data['address'] = nl2br($this->config->get('config_address'));

                        $data['geocode'] = $this->config->get('config_geocode');

                        $data['geocode_hl'] = $this->config->get('config_language');

                        $data['telephone'] = $this->config->get('config_telephone');

                        $data['fax'] = $this->config->get('config_fax');

                        $data['open'] = nl2br($this->config->get('config_open'));

                        $data['comment'] = $this->config->get('config_comment');

 

                        $data['locations'] = array();

 

                        $this->load->model('localisation/location');

 

                        foreach((array)$this->config->get('config_location') as $location_id) {

                                   $location_info = $this->model_localisation_location->getLocation($location_id);

 

                                   if ($location_info) {

                                               if ($location_info['image']) {

                                                           $image = $this->model_tool_image->resize($location_info['image'], $this->config->get('config_image_location_width'), $this->config->get('config_image_location_height'));

                                               } else {

                                                           $image = false;

                                               }

 

                                               $data['locations'][] = array(

                                                           'location_id' => $location_info['location_id'],

                                                           'name'        => $location_info['name'],

                                                           'address'     => nl2br($location_info['address']),

                                                           'geocode'     => $location_info['geocode'],

                                                           'telephone'   => $location_info['telephone'],

                                                           'fax'         => $location_info['fax'],

                                                           'image'       => $image,

                                                           'open'        => nl2br($location_info['open']),

                                                           'comment'     => $location_info['comment']

                                               );

                                   }

                        }

 

                        if (isset($this->request->post['name'])) {

                                   $data['name'] = $this->request->post['name'];

                        } else {

                                   $data['name'] = $this->customer->getFirstName();

                        }

 

                        if (isset($this->request->post['email'])) {

                                   $data['email'] = $this->request->post['email'];

                        } else {

                                   $data['email'] = $this->customer->getEmail();

                        }

 

                        if (isset($this->request->post['enquiry'])) {

                                   $data['enquiry'] = $this->request->post['enquiry'];

                        } else {

                                   $data['enquiry'] = '';

                        }

 

                        // Captcha

                        if ($this->config->get($this->config->get('config_captcha') . '_status') && in_array('contact', (array)$this->config->get('config_captcha_page'))) {

                                   $data['captcha'] = $this->load->controller('captcha/' . $this->config->get('config_captcha'), $this->error);

                        } else {

                                   $data['captcha'] = '';

                        }

 

                        $data['column_left'] = $this->load->controller('common/column_left');

                        $data['column_right'] = $this->load->controller('common/column_right');

                        $data['content_top'] = $this->load->controller('common/content_top');

                        $data['content_bottom'] = $this->load->controller('common/content_bottom');

                        $data['footer'] = $this->load->controller('common/footer');

                        $data['header'] = $this->load->controller('common/header');

 

                        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/contact.tpl')) {

                                   $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/information/contact.tpl', $data));

                        } else {

                                   $this->response->setOutput($this->load->view('default/template/information/contact.tpl', $data));

                        }

            }

 

            protected function validate() {

                        if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 32)) {

                                   $this->error['name'] = $this->language->get('error_name');

                        }

 

                        if (!preg_match('/^[^\@]+@.*.[a-z]{2,15}$/i', $this->request->post['email'])) {

                                   $this->error['email'] = $this->language->get('error_email');

                        }

 

                      if ((utf8_strlen($this->request->post['enquiry']) < 10) || (utf8_strlen($this->request->post['enquiry']) > 3000)) {

                                   $this->error['enquiry'] = $this->language->get('error_enquiry');

                        }

 

                        // Captcha

                        if ($this->config->get($this->config->get('config_captcha') . '_status') && in_array('contact', (array)$this->config->get('config_captcha_page'))) {

                                   $captcha = $this->load->controller('captcha/' . $this->config->get('config_captcha') . '/validate');

 

                                   if ($captcha) {

                                               $this->error['captcha'] = $captcha;

                                   }

                        }

 

                        return !$this->error;

            }

 

            public function success() {

                        $this->load->language('information/contact');

 

                        $this->document->setTitle($this->language->get('heading_title'));

 

                        $data['breadcrumbs'] = array();

 

                        $data['breadcrumbs'][] = array(

                                   'text' => $this->language->get('text_home'),

                                   'href' => $this->url->link('common/home')

                        );

 

                        $data['breadcrumbs'][] = array(

                                   'text' => $this->language->get('heading_title'),

                                   'href' => $this->url->link('information/contact')

                        );

 

                        $data['heading_title'] = $this->language->get('heading_title');

 

                        $data['text_message'] = $this->language->get('text_success');

 

                        $data['button_continue'] = $this->language->get('button_continue');

 

                        $data['continue'] = $this->url->link('common/home');

 

                        $data['column_left'] = $this->load->controller('common/column_left');

                        $data['column_right'] = $this->load->controller('common/column_right');

                        $data['content_top'] = $this->load->controller('common/content_top');

                        $data['content_bottom'] = $this->load->controller('common/content_bottom');

                        $data['footer'] = $this->load->controller('common/footer');

                        $data['header'] = $this->load->controller('common/header');

 

                        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/success.tpl')) {

                                   $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/common/success.tpl', $data));

                        } else {

                                   $this->response->setOutput($this->load->view('default/template/common/success.tpl', $data));

                        }

            }

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

~/www/блаблабла.ru/system/library/mail.php

 

<?php

// *       @copyright      OPENCART.PRO 2011 - 2015.

// *       @forum           http://forum.opencart.pro

// *       @source                      See SOURCE.txt for source and other copyright.

// *       @license          GNU General Public License version 3; see LICENSE.txt

 

class Mail {

            protected $to;

            protected $from;

            protected $sender;

            protected $reply_to;

            protected $subject;

            protected $text;

            protected $html;

            protected $attachments = array();

            public $protocol = 'mail';

            public $smtp_hostname;

            public $smtp_username;

            public $smtp_password;

            public $smtp_port = 25;

            public $smtp_timeout = 5;

            public $newline = "\n";

            public $verp = false;

            public $parameter = '';

 

            public function __construct($config = array()) {

                        foreach ($config as $key => $value) {

                                   $this->$key = $value;

                        }

            }

 

            public function setTo($to) {

                        $this->to = $to;

            }

 

            public function setFrom($from) {

                        $this->from = $from;

            }

 

            public function setSender($sender) {

                        $this->sender = $sender;

            }

 

            public function setReplyTo($reply_to) {

                        $this->reply_to = $reply_to;

            }

 

            public function setSubject($subject) {

                        $this->subject = $subject;

            }

 

            public function setText($text) {

                        $this->text = $text;

            }

 

            public function setHtml($html) {

                        $this->html = $html;

            }

 

            public function addAttachment($filename) {

                        $this->attachments[] = $filename;

            }

 

            public function send() {

                        if (!$this->to) {

                                   trigger_error('Error: E-Mail to required!');

                                   exit();

                        }

 

                        if (!$this->from) {

                                   trigger_error('Error: E-Mail from required!');

                                   exit();

                        }

 

                        if (!$this->sender) {

                                   trigger_error('Error: E-Mail sender required!');

                                   exit();

                        }

 

                        if (!$this->subject) {

                                   trigger_error('Error: E-Mail subject required!');

                                   exit();

                        }

 

                        if ((!$this->text) && (!$this->html)) {

                                   trigger_error('Error: E-Mail message required!');

                                   exit();

                        }

 

                        if (is_array($this->to)) {

                                   $to = implode(',', $this->to);

                        } else {

                                   $to = $this->to;

                        }

 

                        $boundary = '----=_NextPart_' . md5(time());

 

                        $header = 'MIME-Version: 1.0' . $this->newline;

 

                        if ($this->protocol != 'mail') {

                                   $header .= 'To: ' . $to . $this->newline;

                                   $header .= 'Subject: =?UTF-8?B?' . base64_encode($this->subject) . '?=' . $this->newline;

                        }

 

                        $header .= 'Date: ' . date('D, d M Y H:i:s O') . $this->newline;

                        $header .= 'From: =?UTF-8?B?' . base64_encode($this->sender) . '?=' . ' <' . $this->from . '>' . $this->newline;

                       

                        if (!$this->reply_to) {

                                  $header .= 'Reply-To: =?UTF-8?B?' . base64_encode($this->sender) . '?=' . ' <' . $this->from . '>' . $this->newline;

                        } else {

                                   $header .= 'Reply-To: =?UTF-8?B?' . base64_encode($this->reply_to) . '?=' . ' <' . $this->reply_to . '>' . $this->newline;

                        }

                       

                        $header .= 'Return-Path: ' . $this->from . $this->newline;

                        $header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;

                        $header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline . $this->newline;

 

                        if (!$this->html) {

                                   $message  = '--' . $boundary . $this->newline;

                                   $message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;

                                   $message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

                                   $message .= $this->text . $this->newline;

                        } else {

                                   $message  = '--' . $boundary . $this->newline;

                                   $message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;

                                   $message .= '--' . $boundary . '_alt' . $this->newline;

                                   $message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;

                                   $message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

 

                                   if ($this->text) {

                                               $message .= $this->text . $this->newline;

                                   } else {

                                               $message .= 'This is a HTML email and your email client software does not support HTML email!' . $this->newline;

                                   }

 

                                   $message .= '--' . $boundary . '_alt' . $this->newline;

                                   $message .= 'Content-Type: text/html; charset="utf-8"' . $this->newline;

                                   $message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

                                   $message .= $this->html . $this->newline;

                                   $message .= '--' . $boundary . '_alt--' . $this->newline;

                        }

 

                        foreach ($this->attachments as $attachment) {

                                   if (file_exists($attachment)) {

                                               $handle = fopen($attachment, 'r');

 

                                               $content = fread($handle, filesize($attachment));

 

                                               fclose($handle);

 

                                               $message .= '--' . $boundary . $this->newline;

                                              $message .= 'Content-Type: application/octet-stream; name="' . basename($attachment) . '"' . $this->newline;

                                               $message .= 'Content-Transfer-Encoding: base64' . $this->newline;

                                               $message .= 'Content-Disposition: attachment; filename="' . basename($attachment) . '"' . $this->newline;

                                               $message .= 'Content-ID: <' . basename(urlencode($attachment)) . '>' . $this->newline;

                                               $message .= 'X-Attachment-Id: ' . basename(urlencode($attachment)) . $this->newline . $this->newline;

                                               $message .= chunk_split(base64_encode($content));

                                   }

                        }

 

                        $message .= '--' . $boundary . '--' . $this->newline;

 

                        if ($this->protocol == 'mail') {

                                   ini_set('sendmail_from', $this->from);

 

                                   if ($this->parameter) {

                                               mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);

                                   } else {

                                               mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);

                                   }

                        } elseif ($this->protocol == 'smtp') {

                                   $tls = substr($this->smtp_hostname, 0, 3) == 'tls';

                                   $hostname = $tls ? substr($this->smtp_hostname, 6) : $this->smtp_hostname;

 

                                   $handle = fsockopen($hostname, $this->smtp_port, $errno, $errstr, $this->smtp_timeout);

 

                                   if (!$handle) {

                                               trigger_error('Error: ' . $errstr . ' (' . $errno . ')');

                                               exit();

                                   } else {

                                               if (substr(PHP_OS, 0, 3) != 'WIN') {

                                                           socket_set_timeout($handle, $this->smtp_timeout, 0);

                                               }

 

                                               while ($line = fgets($handle, 515)) {

                                                           if (substr($line, 3, 1) == ' ') {

                                                                       break;

                                                           }

                                               }

 

                                               fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . "\r\n");

 

                                               $reply = '';

 

                                               while ($line = fgets($handle, 515)) {

                                                           $reply .= $line;

 

                                                           if (substr($line, 3, 1) == ' ') {

                                                                       break;

                                                           }

                                               }

 

                                               if (substr($reply, 0, 3) != 250) {

                                                           trigger_error('Error: EHLO not accepted from server!');

                                                           exit();

                                               }

 

                                               if ($tls) {

                                                           fputs($handle, 'STARTTLS' . "\r\n");

 

                                                           $reply = '';

 

                                                           while ($line = fgets($handle, 515)) {

                                                                       $reply .= $line;

 

                                                                       if (substr($line, 3, 1) == ' ') {

                                                                                   break;

                                                                       }

                                                           }

 

                                                           if (substr($reply, 0, 3) != 220) {

                                                                       trigger_error('Error: STARTTLS not accepted from server!');

                                                                       exit();

                                                           }

 

                                                           stream_socket_enable_crypto($handle, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);

                                               }

 

                                               if (!empty($this->smtp_username)  && !empty($this->smtp_password)) {

                                                           fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . "\r\n");

 

                                                           $reply = '';

 

                                                           while ($line = fgets($handle, 515)) {

                                                                       $reply .= $line;

 

                                                                       if (substr($line, 3, 1) == ' ') {

                                                                                  break;

                                                                       }

                                                           }

 

                                                           if (substr($reply, 0, 3) != 250) {

                                                                       trigger_error('Error: EHLO not accepted from server!');

                                                                       exit();

                                                           }

 

                                                           fputs($handle, 'AUTH LOGIN' . "\r\n");

 

                                                           $reply = '';

 

                                                           while ($line = fgets($handle, 515)) {

                                                                       $reply .= $line;

 

                                                                       if (substr($line, 3, 1) == ' ') {

                                                                                  break;

                                                                       }

                                                           }

 

                                                           if (substr($reply, 0, 3) != 334) {

                                                                       trigger_error('Error: AUTH LOGIN not accepted from server!');

                                                                       exit();

                                                           }

 

                                                           fputs($handle, base64_encode($this->smtp_username) . "\r\n");

 

                                                           $reply = '';

 

                                                           while ($line = fgets($handle, 515)) {

                                                                       $reply .= $line;

 

                                                                       if (substr($line, 3, 1) == ' ') {

                                                                                  break;

                                                                       }

                                                           }

 

                                                           if (substr($reply, 0, 3) != 334) {

                                                                       trigger_error('Error: Username not accepted from server!');

                                                                       exit();

                                                           }

 

                                                           fputs($handle, base64_encode($this->smtp_password) . "\r\n");

 

                                                           $reply = '';

 

                                                           while ($line = fgets($handle, 515)) {

                                                                       $reply .= $line;

 

                                                                       if (substr($line, 3, 1) == ' ') {

                                                                                  break;

                                                                       }

                                                           }

 

                                                           if (substr($reply, 0, 3) != 235) {

                                                                       trigger_error('Error: Password not accepted from server!');

                                                                       exit();

                                                           }

                                               } else {

                                                           fputs($handle, 'HELO ' . getenv('SERVER_NAME') . "\r\n");

 

                                                           $reply = '';

 

                                                           while ($line = fgets($handle, 515)) {

                                                                       $reply .= $line;

 

                                                                       if (substr($line, 3, 1) == ' ') {

                                                                                  break;

                                                                       }

                                                           }

 

                                                           if (substr($reply, 0, 3) != 250) {

                                                                       trigger_error('Error: HELO not accepted from server!');

                                                                       exit();

                                                           }

                                               }

 

                                               if ($this->verp) {

                                                           fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>XVERP' . "\r\n");

                                               } else {

                                                           fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>' . "\r\n");

                                               }

 

                                               $reply = '';

 

                                               while ($line = fgets($handle, 515)) {

                                                           $reply .= $line;

 

                                                           if (substr($line, 3, 1) == ' ') {

                                                                       break;

                                                           }

                                               }

 

                                               if (substr($reply, 0, 3) != 250) {

                                                           trigger_error('Error: MAIL FROM not accepted from server!');

                                                           exit();

                                               }

 

                                               if (!is_array($this->to)) {

                                                           fputs($handle, 'RCPT TO: <' . $this->to . '>' . "\r\n");

 

                                                           $reply = '';

 

                                                           while ($line = fgets($handle, 515)) {

                                                                       $reply .= $line;

 

                                                                       if (substr($line, 3, 1) == ' ') {

                                                                                  break;

                                                                       }

                                                           }

 

                                                           if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {

                                                                       trigger_error('Error: RCPT TO not accepted from server!');

                                                                       exit();

                                                           }

                                               } else {

                                                           foreach ($this->to as $recipient) {

                                                                       fputs($handle, 'RCPT TO: <' . $recipient . '>' . "\r\n");

 

                                                                       $reply = '';

 

                                                                       while ($line = fgets($handle, 515)) {

                                                                                  $reply .= $line;

 

                                                                                  if (substr($line, 3, 1) == ' ') {

                                                                                              break;

                                                                                  }

                                                                       }

 

                                                                       if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {

                                                                                  trigger_error('Error: RCPT TO not accepted from server!');

                                                                                  exit();

                                                                       }

                                                           }

                                               }

 

                                               fputs($handle, 'DATA' . "\r\n");

 

                                               $reply = '';

 

                                               while ($line = fgets($handle, 515)) {

                                                           $reply .= $line;

 

                                                           if (substr($line, 3, 1) == ' ') {

                                                                       break;

                                                           }

                                               }

 

                                               if (substr($reply, 0, 3) != 354) {

                                                           trigger_error('Error: DATA not accepted from server!');

                                                           exit();

                                               }

 

                                               // According to rfc 821 we should not send more than 1000 including the CRLF

                                               $message = str_replace("\r\n", "\n", $header . $message);

                                               $message = str_replace("\r", "\n", $message);

 

                                               $lines = explode("\n", $message);

 

                                               foreach ($lines as $line) {

                                                           $results = str_split($line, 998);

 

                                                           foreach ($results as $result) {

                                                                       if (substr(PHP_OS, 0, 3) != 'WIN') {

                                                                                  fputs($handle, $result . "\r\n");

                                                                       } else {

                                                                                  fputs($handle, str_replace("\n", "\r\n", $result) . "\r\n");

                                                                       }

                                                           }

                                               }

 

                                               fputs($handle, '.' . "\r\n");

 

                                               $reply = '';

 

                                               while ($line = fgets($handle, 515)) {

                                                           $reply .= $line;

 

                                                           if (substr($line, 3, 1) == ' ') {

                                                                       break;

                                                           }

                                               }

 

                                               if (substr($reply, 0, 3) != 250) {

                                                           trigger_error('Error: DATA not accepted from server!');

                                                           exit();

                                               }

 

                                               fputs($handle, 'QUIT' . "\r\n");

 

                                               $reply = '';

 

                                               while ($line = fgets($handle, 515)) {

                                                           $reply .= $line;

 

                                                           if (substr($line, 3, 1) == ' ') {

                                                                       break;

                                                           }

                                               }

 

                                               if (substr($reply, 0, 3) != 221) {

                                                           trigger_error('Error: QUIT not accepted from server!');

                                                           exit();

                                               }

 

                                               fclose($handle);

                                   }

                        }

            }

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Спойлер

~/www/блаблабла.ru/system/library/mail.php

 

<?php

 

// *       @copyright      OPENCART.PRO 2011 - 2015.

 

// *       @forum           http://forum.opencart.pro

 

// *       @source                      See SOURCE.txt for source and other copyright.

 

// *       @license          GNU General Public License version 3; see LICENSE.txt

 

 

 

class Mail {

 

            protected $to;

 

            protected $from;

 

            protected $sender;

 

            protected $reply_to;

 

            protected $subject;

 

            protected $text;

 

            protected $html;

 

            protected $attachments = array();

 

            public $protocol = 'mail';

 

            public $smtp_hostname;

 

            public $smtp_username;

 

            public $smtp_password;

 

            public $smtp_port = 25;

 

            public $smtp_timeout = 5;

 

            public $newline = "\n";

 

            public $verp = false;

 

            public $parameter = '';

 

 

 

            public function __construct($config = array()) {

 

                        foreach ($config as $key => $value) {

 

                                   $this->$key = $value;

 

                        }

 

            }

 

 

 

            public function setTo($to) {

 

                        $this->to = $to;

 

            }

 

 

 

            public function setFrom($from) {

 

                        $this->from = $from;

 

            }

 

 

 

            public function setSender($sender) {

 

                        $this->sender = $sender;

 

            }

 

 

 

            public function setReplyTo($reply_to) {

 

                        $this->reply_to = $reply_to;

 

            }

 

 

 

            public function setSubject($subject) {

 

                        $this->subject = $subject;

 

            }

 

 

 

            public function setText($text) {

 

                        $this->text = $text;

 

            }

 

 

 

            public function setHtml($html) {

 

                        $this->html = $html;

 

            }

 

 

 

            public function addAttachment($filename) {

 

                        $this->attachments[] = $filename;

 

            }

 

 

 

            public function send() {

 

                        if (!$this->to) {

 

                                   trigger_error('Error: E-Mail to required!');

 

                                   exit();

 

                        }

 

 

 

                        if (!$this->from) {

 

                                   trigger_error('Error: E-Mail from required!');

 

                                   exit();

 

                        }

 

 

 

                        if (!$this->sender) {

 

                                   trigger_error('Error: E-Mail sender required!');

 

                                   exit();

 

                        }

 

 

 

                        if (!$this->subject) {

 

                                   trigger_error('Error: E-Mail subject required!');

 

                                   exit();

 

                        }

 

 

 

                        if ((!$this->text) && (!$this->html)) {

 

                                   trigger_error('Error: E-Mail message required!');

 

                                   exit();

 

                        }

 

 

 

                        if (is_array($this->to)) {

 

                                   $to = implode(',', $this->to);

 

                        } else {

 

                                   $to = $this->to;

 

                        }

 

 

 

                        $boundary = '----=_NextPart_' . md5(time());

 

 

 

                        $header = 'MIME-Version: 1.0' . $this->newline;

 

 

 

                        if ($this->protocol != 'mail') {

 

                                   $header .= 'To: ' . $to . $this->newline;

 

                                   $header .= 'Subject: =?UTF-8?B?' . base64_encode($this->subject) . '?=' . $this->newline;

 

                        }

 

 

 

                        $header .= 'Date: ' . date('D, d M Y H:i:s O') . $this->newline;

 

                        $header .= 'From: =?UTF-8?B?' . base64_encode($this->sender) . '?=' . ' <' . $this->from . '>' . $this->newline;

 

                       

 

                        if (!$this->reply_to) {

 

                                  $header .= 'Reply-To: =?UTF-8?B?' . base64_encode($this->sender) . '?=' . ' <' . $this->from . '>' . $this->newline;

 

                        } else {

 

                                   $header .= 'Reply-To: =?UTF-8?B?' . base64_encode($this->reply_to) . '?=' . ' <' . $this->reply_to . '>' . $this->newline;

 

                        }

 

                       

 

                        $header .= 'Return-Path: ' . $this->from . $this->newline;

 

                        $header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;

 

                        $header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline . $this->newline;

 

 

 

                        if (!$this->html) {

 

                                   $message  = '--' . $boundary . $this->newline;

 

                                   $message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;

 

                                   $message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

 

                                   $message .= $this->text . $this->newline;

 

                        } else {

 

                                   $message  = '--' . $boundary . $this->newline;

 

                                   $message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;

 

                                   $message .= '--' . $boundary . '_alt' . $this->newline;

 

                                   $message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;

 

                                   $message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

 

 

 

                                   if ($this->text) {

 

                                               $message .= $this->text . $this->newline;

 

                                   } else {

 

                                               $message .= 'This is a HTML email and your email client software does not support HTML email!' . $this->newline;

 

                                   }

 

 

 

                                   $message .= '--' . $boundary . '_alt' . $this->newline;

 

                                   $message .= 'Content-Type: text/html; charset="utf-8"' . $this->newline;

 

                                   $message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

 

                                   $message .= $this->html . $this->newline;

 

                                   $message .= '--' . $boundary . '_alt--' . $this->newline;

 

                        }

 

 

 

                        foreach ($this->attachments as $attachment) {

 

                                   if (file_exists($attachment)) {

 

                                               $handle = fopen($attachment, 'r');

 

 

 

                                               $content = fread($handle, filesize($attachment));

 

 

 

                                               fclose($handle);

 

 

 

                                               $message .= '--' . $boundary . $this->newline;

 

                                              $message .= 'Content-Type: application/octet-stream; name="' . basename($attachment) . '"' . $this->newline;

 

                                               $message .= 'Content-Transfer-Encoding: base64' . $this->newline;

 

                                               $message .= 'Content-Disposition: attachment; filename="' . basename($attachment) . '"' . $this->newline;

 

                                               $message .= 'Content-ID: <' . basename(urlencode($attachment)) . '>' . $this->newline;

 

                                               $message .= 'X-Attachment-Id: ' . basename(urlencode($attachment)) . $this->newline . $this->newline;

 

                                               $message .= chunk_split(base64_encode($content));

 

                                   }

 

                        }

 

 

 

                        $message .= '--' . $boundary . '--' . $this->newline;

 

 

 

                        if ($this->protocol == 'mail') {

 

                                   ini_set('sendmail_from', $this->from);

 

 

 

                                   if ($this->parameter) {

 

                                               mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);

 

                                   } else {

 

                                               mail($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);

 

                                   }

 

                        } elseif ($this->protocol == 'smtp') {

 

                                   $tls = substr($this->smtp_hostname, 0, 3) == 'tls';

 

                                   $hostname = $tls ? substr($this->smtp_hostname, 6) : $this->smtp_hostname;

 

 

 

                                   $handle = fsockopen($hostname, $this->smtp_port, $errno, $errstr, $this->smtp_timeout);

 

 

 

                                   if (!$handle) {

 

                                               trigger_error('Error: ' . $errstr . ' (' . $errno . ')');

 

                                               exit();

 

                                   } else {

 

                                               if (substr(PHP_OS, 0, 3) != 'WIN') {

 

                                                           socket_set_timeout($handle, $this->smtp_timeout, 0);

 

                                               }

 

 

 

                                               while ($line = fgets($handle, 515)) {

 

                                                           if (substr($line, 3, 1) == ' ') {

 

                                                                       break;

 

                                                           }

 

                                               }

 

 

 

                                               fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . "\r\n");

 

 

 

                                               $reply = '';

 

 

 

                                               while ($line = fgets($handle, 515)) {

 

                                                           $reply .= $line;

 

 

 

                                                           if (substr($line, 3, 1) == ' ') {

 

                                                                       break;

 

                                                           }

 

                                               }

 

 

 

                                               if (substr($reply, 0, 3) != 250) {

 

                                                           trigger_error('Error: EHLO not accepted from server!');

 

                                                           exit();

 

                                               }

 

 

 

                                               if ($tls) {

 

                                                           fputs($handle, 'STARTTLS' . "\r\n");

 

 

 

                                                           $reply = '';

 

 

 

                                                           while ($line = fgets($handle, 515)) {

 

                                                                       $reply .= $line;

 

 

 

                                                                       if (substr($line, 3, 1) == ' ') {

 

                                                                                   break;

 

                                                                       }

 

                                                           }

 

 

 

                                                           if (substr($reply, 0, 3) != 220) {

 

                                                                       trigger_error('Error: STARTTLS not accepted from server!');

 

                                                                       exit();

 

                                                           }

 

 

 

                                                           stream_socket_enable_crypto($handle, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);

 

                                               }

 

 

 

                                               if (!empty($this->smtp_username)  && !empty($this->smtp_password)) {

 

                                                           fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . "\r\n");

 

 

 

                                                           $reply = '';

 

 

 

                                                           while ($line = fgets($handle, 515)) {

 

                                                                       $reply .= $line;

 

 

 

                                                                       if (substr($line, 3, 1) == ' ') {

 

                                                                                  break;

 

                                                                       }

 

                                                           }

 

 

 

                                                           if (substr($reply, 0, 3) != 250) {

 

                                                                       trigger_error('Error: EHLO not accepted from server!');

 

                                                                       exit();

 

                                                           }

 

 

 

                                                           fputs($handle, 'AUTH LOGIN' . "\r\n");

 

 

 

                                                           $reply = '';

 

 

 

                                                           while ($line = fgets($handle, 515)) {

 

                                                                       $reply .= $line;

 

 

 

                                                                       if (substr($line, 3, 1) == ' ') {

 

                                                                                  break;

 

                                                                       }

 

                                                           }

 

 

 

                                                           if (substr($reply, 0, 3) != 334) {

 

                                                                       trigger_error('Error: AUTH LOGIN not accepted from server!');

 

                                                                       exit();

 

                                                           }

 

 

 

                                                           fputs($handle, base64_encode($this->smtp_username) . "\r\n");

 

 

 

                                                           $reply = '';

 

 

 

                                                           while ($line = fgets($handle, 515)) {

 

                                                                       $reply .= $line;

 

 

 

                                                                       if (substr($line, 3, 1) == ' ') {

 

                                                                                  break;

 

                                                                       }

 

                                                           }

 

 

 

                                                           if (substr($reply, 0, 3) != 334) {

 

                                                                       trigger_error('Error: Username not accepted from server!');

 

                                                                       exit();

 

                                                           }

 

 

 

                                                           fputs($handle, base64_encode($this->smtp_password) . "\r\n");

 

 

 

                                                           $reply = '';

 

 

 

                                                           while ($line = fgets($handle, 515)) {

 

                                                                       $reply .= $line;

 

 

 

                                                                       if (substr($line, 3, 1) == ' ') {

 

                                                                                  break;

 

                                                                       }

 

                                                           }

 

 

 

                                                           if (substr($reply, 0, 3) != 235) {

 

                                                                       trigger_error('Error: Password not accepted from server!');

 

                                                                       exit();

 

                                                           }

 

                                               } else {

 

                                                           fputs($handle, 'HELO ' . getenv('SERVER_NAME') . "\r\n");

 

 

 

                                                           $reply = '';

 

 

 

                                                           while ($line = fgets($handle, 515)) {

 

                                                                       $reply .= $line;

 

 

 

                                                                       if (substr($line, 3, 1) == ' ') {

 

                                                                                  break;

 

                                                                       }

 

                                                           }

 

 

 

                                                           if (substr($reply, 0, 3) != 250) {

 

                                                                       trigger_error('Error: HELO not accepted from server!');

 

                                                                       exit();

 

                                                           }

 

                                               }

 

 

 

                                               if ($this->verp) {

 

                                                           fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>XVERP' . "\r\n");

 

                                               } else {

 

                                                           fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>' . "\r\n");

 

                                               }

 

 

 

                                               $reply = '';

 

 

 

                                               while ($line = fgets($handle, 515)) {

 

                                                           $reply .= $line;

 

 

 

                                                           if (substr($line, 3, 1) == ' ') {

 

                                                                       break;

 

                                                           }

 

                                               }

 

 

 

                                               if (substr($reply, 0, 3) != 250) {

 

                                                           trigger_error('Error: MAIL FROM not accepted from server!');

 

                                                           exit();

 

                                               }

 

 

 

                                               if (!is_array($this->to)) {

 

                                                           fputs($handle, 'RCPT TO: <' . $this->to . '>' . "\r\n");

 

 

 

                                                           $reply = '';

 

 

 

                                                           while ($line = fgets($handle, 515)) {

 

                                                                       $reply .= $line;

 

 

 

                                                                       if (substr($line, 3, 1) == ' ') {

 

                                                                                  break;

 

                                                                       }

 

                                                           }

 

 

 

                                                           if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {

 

                                                                       trigger_error('Error: RCPT TO not accepted from server!');

 

                                                                       exit();

 

                                                           }

 

                                               } else {

 

                                                           foreach ($this->to as $recipient) {

 

                                                                       fputs($handle, 'RCPT TO: <' . $recipient . '>' . "\r\n");

 

 

 

                                                                       $reply = '';

 

 

 

                                                                       while ($line = fgets($handle, 515)) {

 

                                                                                  $reply .= $line;

 

 

 

                                                                                  if (substr($line, 3, 1) == ' ') {

 

                                                                                              break;

 

                                                                                  }

 

                                                                       }

 

 

 

                                                                       if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {

 

                                                                                  trigger_error('Error: RCPT TO not accepted from server!');

 

                                                                                  exit();

 

                                                                       }

 

                                                           }

 

                                               }

 

 

 

                                               fputs($handle, 'DATA' . "\r\n");

 

 

 

                                               $reply = '';

 

 

 

                                               while ($line = fgets($handle, 515)) {

 

                                                           $reply .= $line;

 

 

 

                                                           if (substr($line, 3, 1) == ' ') {

 

                                                                       break;

 

                                                           }

 

                                               }

 

 

 

                                               if (substr($reply, 0, 3) != 354) {

 

                                                           trigger_error('Error: DATA not accepted from server!');

 

                                                           exit();

 

                                               }

 

 

 

                                               // According to rfc 821 we should not send more than 1000 including the CRLF

 

                                               $message = str_replace("\r\n", "\n", $header . $message);

 

                                               $message = str_replace("\r", "\n", $message);

 

 

 

                                               $lines = explode("\n", $message);

 

 

 

                                               foreach ($lines as $line) {

 

                                                           $results = str_split($line, 998);

 

 

 

                                                           foreach ($results as $result) {

 

                                                                       if (substr(PHP_OS, 0, 3) != 'WIN') {

 

                                                                                  fputs($handle, $result . "\r\n");

 

                                                                       } else {

 

                                                                                  fputs($handle, str_replace("\n", "\r\n", $result) . "\r\n");

 

                                                                       }

 

                                                           }

 

                                               }

 

 

 

                                               fputs($handle, '.' . "\r\n");

 

 

 

                                               $reply = '';

 

 

 

                                               while ($line = fgets($handle, 515)) {

 

                                                           $reply .= $line;

 

 

 

                                                           if (substr($line, 3, 1) == ' ') {

 

                                                                       break;

 

                                                           }

 

                                               }

 

 

 

                                               if (substr($reply, 0, 3) != 250) {

 

                                                           trigger_error('Error: DATA not accepted from server!');

 

                                                           exit();

 

                                               }

 

 

 

                                               fputs($handle, 'QUIT' . "\r\n");

 

 

 

                                               $reply = '';

 

 

 

                                               while ($line = fgets($handle, 515)) {

 

                                                           $reply .= $line;

 

 

 

                                                           if (substr($line, 3, 1) == ' ') {

 

                                                                       break;

 

                                                           }

 

                                               }

 

 

 

                                               if (substr($reply, 0, 3) != 221) {

 

                                                           trigger_error('Error: QUIT not accepted from server!');

 

                                                           exit();

 

                                               }

 

 

 

                                               fclose($handle);

 

                                   }

 

                        }

 

            }

 

}

 

Изменено пользователем staric

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Спойлер

~/www/блаблабла.ru/catalog/controller/information/contact.php

 

 

<?php

 

// *       @copyright      OPENCART.PRO 2011 - 2015.

 

// *       @forum           http://forum.opencart.pro

 

// *       @source                      See SOURCE.txt for source and other copyright.

 

// *       @license          GNU General Public License version 3; see LICENSE.txt

 

 

 

class ControllerInformationContact extends Controller {

 

            private $error = array();

 

 

 

            public function index() {

 

                        $this->load->language('information/contact');

 

 

 

                        $this->document->setTitle($this->language->get('heading_title'));

 

 

 

                        if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {

 

                                   $mail = new Mail();

 

                                   $mail->protocol = $this->config->get('config_mail_protocol');

 

                                   $mail->parameter = $this->config->get('config_mail_parameter');

 

                                   $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');

 

                                   $mail->smtp_username = $this->config->get('config_mail_smtp_username');

 

                                   $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');

 

                                   $mail->smtp_port = $this->config->get('config_mail_smtp_port');

 

                                   $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

 

 

 

            $mail->setTo($this->config->get('config_email'));

 

                                   $mail->setFrom($this->config->get('config_email'));

 

                                   $mail->setSender(html_entity_decode($this->request->post['name'], ENT_QUOTES, 'UTF-8'));

 

                                   $mail->setSubject(html_entity_decode(sprintf($this->language->get('email_subject'), $this->request->post['name']), ENT_QUOTES, 'UTF-8'));

 

                                   $mail->setText($this->request->post['enquiry'] . '\n\n' . $this->request->post['email']);

 

                                   $mail->send();

 

 

 

                                   $this->response->redirect($this->url->link('information/contact/success'));

 

                        }

 

 

 

                        $data['breadcrumbs'] = array();

 

 

 

                        $data['breadcrumbs'][] = array(

 

                                   'text' => $this->language->get('text_home'),

 

                                   'href' => $this->url->link('common/home')

 

                        );

 

 

 

                        $data['breadcrumbs'][] = array(

 

                                   'text' => $this->language->get('heading_title'),

 

                                   'href' => $this->url->link('information/contact')

 

                        );

 

 

 

                        $data['heading_title'] = $this->language->get('heading_title');

 

 

 

                        $data['text_location'] = $this->language->get('text_location');

 

                        $data['text_store'] = $this->language->get('text_store');

 

                        $data['text_contact'] = $this->language->get('text_contact');

 

                        $data['text_address'] = $this->language->get('text_address');

 

                        $data['text_telephone'] = $this->language->get('text_telephone');

 

                        $data['text_fax'] = $this->language->get('text_fax');

 

                        $data['text_open'] = $this->language->get('text_open');

 

                        $data['text_comment'] = $this->language->get('text_comment');

 

 

 

                        $data['entry_name'] = $this->language->get('entry_name');

 

                        $data['entry_email'] = $this->language->get('entry_email');

 

                        $data['entry_enquiry'] = $this->language->get('entry_enquiry');

 

 

 

                        $data['button_map'] = $this->language->get('button_map');

 

 

 

                        if (isset($this->error['name'])) {

 

                                   $data['error_name'] = $this->error['name'];

 

                        } else {

 

                                   $data['error_name'] = '';

 

                        }

 

 

 

                        if (isset($this->error['email'])) {

 

                                   $data['error_email'] = $this->error['email'];

 

                        } else {

 

                                   $data['error_email'] = '';

 

                        }

 

 

 

                        if (isset($this->error['enquiry'])) {

 

                                   $data['error_enquiry'] = $this->error['enquiry'];

 

                        } else {

 

                                   $data['error_enquiry'] = '';

 

                        }

 

 

 

                        $data['button_submit'] = $this->language->get('button_submit');

 

 

 

                        $data['action'] = $this->url->link('information/contact', '', 'SSL');

 

 

 

                        $this->load->model('tool/image');

 

 

 

                        if ($this->config->get('config_image')) {

 

                                   $data['image'] = $this->model_tool_image->resize($this->config->get('config_image'), $this->config->get('config_image_location_width'), $this->config->get('config_image_location_height'));

 

                        } else {

 

                                   $data['image'] = false;

 

                        }

 

 

 

                        $data['store'] = $this->config->get('config_name');

 

                        $data['address'] = nl2br($this->config->get('config_address'));

 

                        $data['geocode'] = $this->config->get('config_geocode');

 

                        $data['geocode_hl'] = $this->config->get('config_language');

 

                        $data['telephone'] = $this->config->get('config_telephone');

 

                        $data['fax'] = $this->config->get('config_fax');

 

                        $data['open'] = nl2br($this->config->get('config_open'));

 

                        $data['comment'] = $this->config->get('config_comment');

 

 

 

                        $data['locations'] = array();

 

 

 

                        $this->load->model('localisation/location');

 

 

 

                        foreach((array)$this->config->get('config_location') as $location_id) {

 

                                   $location_info = $this->model_localisation_location->getLocation($location_id);

 

 

 

                                   if ($location_info) {

 

                                               if ($location_info['image']) {

 

                                                           $image = $this->model_tool_image->resize($location_info['image'], $this->config->get('config_image_location_width'), $this->config->get('config_image_location_height'));

 

                                               } else {

 

                                                           $image = false;

 

                                               }

 

 

 

                                               $data['locations'][] = array(

 

                                                           'location_id' => $location_info['location_id'],

 

                                                           'name'        => $location_info['name'],

 

                                                           'address'     => nl2br($location_info['address']),

 

                                                           'geocode'     => $location_info['geocode'],

 

                                                           'telephone'   => $location_info['telephone'],

 

                                                           'fax'         => $location_info['fax'],

 

                                                           'image'       => $image,

 

                                                           'open'        => nl2br($location_info['open']),

 

                                                           'comment'     => $location_info['comment']

 

                                               );

 

                                   }

 

                        }

 

 

 

                        if (isset($this->request->post['name'])) {

 

                                   $data['name'] = $this->request->post['name'];

 

                        } else {

 

                                   $data['name'] = $this->customer->getFirstName();

 

                        }

 

 

 

                        if (isset($this->request->post['email'])) {

 

                                   $data['email'] = $this->request->post['email'];

 

                        } else {

 

                                   $data['email'] = $this->customer->getEmail();

 

                        }

 

 

 

                        if (isset($this->request->post['enquiry'])) {

 

                                   $data['enquiry'] = $this->request->post['enquiry'];

 

                        } else {

 

                                   $data['enquiry'] = '';

 

                        }

 

 

 

                        // Captcha

 

                        if ($this->config->get($this->config->get('config_captcha') . '_status') && in_array('contact', (array)$this->config->get('config_captcha_page'))) {

 

                                   $data['captcha'] = $this->load->controller('captcha/' . $this->config->get('config_captcha'), $this->error);

 

                        } else {

 

                                   $data['captcha'] = '';

 

                        }

 

 

 

                        $data['column_left'] = $this->load->controller('common/column_left');

 

                        $data['column_right'] = $this->load->controller('common/column_right');

 

                        $data['content_top'] = $this->load->controller('common/content_top');

 

                        $data['content_bottom'] = $this->load->controller('common/content_bottom');

 

                        $data['footer'] = $this->load->controller('common/footer');

 

                        $data['header'] = $this->load->controller('common/header');

 

 

 

                        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/information/contact.tpl')) {

 

                                   $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/information/contact.tpl', $data));

 

                        } else {

 

                                   $this->response->setOutput($this->load->view('default/template/information/contact.tpl', $data));

 

                        }

 

            }

 

 

 

            protected function validate() {

 

                        if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 32)) {

 

                                   $this->error['name'] = $this->language->get('error_name');

 

                        }

 

 

 

                        if (!preg_match('/^[^\@]+@.*.[a-z]{2,15}$/i', $this->request->post['email'])) {

 

                                   $this->error['email'] = $this->language->get('error_email');

 

                        }

 

 

 

                      if ((utf8_strlen($this->request->post['enquiry']) < 10) || (utf8_strlen($this->request->post['enquiry']) > 3000)) {

 

                                   $this->error['enquiry'] = $this->language->get('error_enquiry');

 

                        }

 

 

 

                        // Captcha

 

                        if ($this->config->get($this->config->get('config_captcha') . '_status') && in_array('contact', (array)$this->config->get('config_captcha_page'))) {

 

                                   $captcha = $this->load->controller('captcha/' . $this->config->get('config_captcha') . '/validate');

 

 

 

                                   if ($captcha) {

 

                                               $this->error['captcha'] = $captcha;

 

                                   }

 

                        }

 

 

 

                        return !$this->error;

 

            }

 

 

 

            public function success() {

 

                        $this->load->language('information/contact');

 

 

 

                        $this->document->setTitle($this->language->get('heading_title'));

 

 

 

                        $data['breadcrumbs'] = array();

 

 

 

                        $data['breadcrumbs'][] = array(

 

                                   'text' => $this->language->get('text_home'),

 

                                   'href' => $this->url->link('common/home')

 

                        );

 

 

 

                        $data['breadcrumbs'][] = array(

 

                                   'text' => $this->language->get('heading_title'),

 

                                   'href' => $this->url->link('information/contact')

 

                        );

 

 

 

                        $data['heading_title'] = $this->language->get('heading_title');

 

 

 

                        $data['text_message'] = $this->language->get('text_success');

 

 

 

                        $data['button_continue'] = $this->language->get('button_continue');

 

 

 

                        $data['continue'] = $this->url->link('common/home');

 

 

 

                        $data['column_left'] = $this->load->controller('common/column_left');

 

                        $data['column_right'] = $this->load->controller('common/column_right');

 

                        $data['content_top'] = $this->load->controller('common/content_top');

 

                        $data['content_bottom'] = $this->load->controller('common/content_bottom');

 

                        $data['footer'] = $this->load->controller('common/footer');

 

                        $data['header'] = $this->load->controller('common/header');

 

 

 

                        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/success.tpl')) {

 

                                   $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/common/success.tpl', $data));

 

                        } else {

 

                                   $this->response->setOutput($this->load->view('default/template/common/success.tpl', $data));

 

                        }

            }

}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.