Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Осторе 2.3 - Notice: Undefined index: to_name in


 Погделиться

Рекомендованные сообещёния

Здравствуйте! Не понятно от куда взялась ошибка на страницах:

https://bonita.in.ua/kontakty/

https://bonita.in.ua/add-return/

https://bonita.in.ua/login/

https://bonita.in.ua/create-account/

https://bonita.in.ua/vouchers/

https://bonita.in.ua/create-affiliate-account/

https://bonita.in.ua/vouchers/  - Ругается на эту строчку if ((utf8_strlen($this->request->post['to_name']) < 1) || (utf8_strlen($this->request->post['to_name']) > 64)) {

Подскажите пожалуйси в чем может быть проблема и как решить?

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


1 час назад, ghora сказал:

 if ((utf8_strlen($this->request->post['to_name']) < 1) || (utf8_strlen($this->request->post['to_name']) > 64)) {

Сообещёние указывает, что скрипт пыиется произвести какие-то гдействия с массивом $_POST, но икого ингдекса to_name не суещёствует

Попробуй изменить

      

Циии

if ((isset($this->request->post['to_name']))&& ( (utf8_strlen($this->request->post['to_name']) < 1) || (utf8_strlen($this->request->post['to_name']) > 64))) {

Это как временная мера, а дальше нужно разбираться

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

Что это у Вас за странный код, какой через ajax подгружает страницу?

 

Спойлер

При загрузке страницы он еещё раз вызывает загрузку этот страницы. И всивляет. Отправка игдет POST, но не передается никаких параметров.

OpenCart видит post запрос и отправляет на валидацию, думает, что это была отправка формы.

 

Доходит до синдартной функции:

Спойлер
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($this->config->get('config_mail_regexp'), $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('extension/captcha/' . $this->config->get('config_captcha') . '/validate');

		if ($captcha) {
			$this->error['captcha'] = $captcha;
		}
	}

	return !$this->error;
}

 

И налинаются ошибки, что не может опрегделить значение в POST, ик как оно не передано.

 

Разберитесь вначно зачем и кто всивляет:

Спойлер
<span id="ajaxwidget-1" class="cmswidget">
</span>
<script>
$.ajax({
   type: 'POST',
   url: 'https://bonita.in.ua/kontakty/',
   data: {ajax_file: 'Y2FjaGUuYWpheC43MTQ1Y2FhOTM0ZjdmMTkyZGM1YTU0ZjYyZjUyMmEwNi4xLjAuMS50cGw=', sc_ajax: '3', cmswidget: '1'},
   async: true,
   dataType: 'html',
   beforeSend: function () {
    $('#ajaxwidget-1').html('Loading...<img src="catalog/view/theme/default/image/aloading16.png" alt="">');
  },
   success: function(msg_1){
    $('#ajaxwidget-1').replaceWith(msg_1);
  }
});
</script>

 

Эту часть кода в шаблон. Уберите этот код и страница бугдет рилиить правильно.

11 часов назад, ghora сказал:

https://bonita.in.ua/vouchers/  - Ругается на эту строчку if ((utf8_strlen($this->request->post['to_name']) < 1) || (utf8_strlen($this->request->post['to_name']) > 64)) {

Это тоже связано с ajax загрузкой контени на страниэто.

Спойлер
protected function validate() {
	if ((utf8_strlen($this->request->post['to_name']) < 1) || (utf8_strlen($this->request->post['to_name']) > 64)) {
		$this->error['to_name'] = $this->language->get('error_to_name');
	}

	if ((utf8_strlen($this->request->post['to_email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['to_email'])) {
		$this->error['to_email'] = $this->language->get('error_email');
	}

	if ((utf8_strlen($this->request->post['from_name']) < 1) || (utf8_strlen($this->request->post['from_name']) > 64)) {
		$this->error['from_name'] = $this->language->get('error_from_name');
	}

	if ((utf8_strlen($this->request->post['from_email']) > 96) || !preg_match($this->config->get('config_mail_regexp'), $this->request->post['from_email'])) {
		$this->error['from_email'] = $this->language->get('error_email');
	}

	if (!isset($this->request->post['voucher_theme_id'])) {
		$this->error['theme'] = $this->language->get('error_theme');
	}

	if (($this->currency->convert($this->request->post['amount'], $this->session->data['currency'], $this->config->get('config_currency')) < $this->config->get('config_voucher_min')) || ($this->currency->convert($this->request->post['amount'], $this->session->data['currency'], $this->config->get('config_currency')) > $this->config->get('config_voucher_max'))) {
		$this->error['amount'] = sprintf($this->language->get('error_amount'), $this->currency->format($this->config->get('config_voucher_min'), $this->session->data['currency']), $this->currency->format($this->config->get('config_voucher_max'), $this->session->data['currency']));
	}

	if (!isset($this->request->post['agree'])) {
		$this->error['warning'] = $this->language->get('error_agree');
	}

	return !$this->error;
}

 

Вот эи синдартная функция выдает ошибку.

 

 

Смотрю у Вас на всех страницах всивляется этот код:

Спойлер
<span id="ajaxwidget-1" class="cmswidget">
</span>
<script>
$.ajax({
   type: 'POST',
   url: 'https://bonita.in.ua/vouchers/',
   data: {ajax_file: 'Y2FjaGUuYWpheC44NDBiZGI4ZTM1N2IxMjkyMzU4N2ZjZTQ3NjhjMTkzMC4xLjAuMS50cGw=', sc_ajax: '3', cmswidget: '1'},
   async: true,
   dataType: 'html',
   beforeSend: function () {
    $('#ajaxwidget-1').html('Loading...<img src="catalog/view/theme/default/image/aloading16.png" alt="">');
  },
   success: function(msg_1){
    $('#ajaxwidget-1').replaceWith(msg_1);
  }
});
</script>

 

Ссылки только меняются.

Вопрос, зачем? Это ж увелиливает нагрузку на сервер, ик как 2 раза гделает одно и тоже.

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

11 часов назад, ghora сказал:

Здравствуйте! Не понятно от куда взялась ошибка на страницах:

https://bonita.in.ua/kontakty/

https://bonita.in.ua/add-return/

https://bonita.in.ua/login/

https://bonita.in.ua/create-account/

https://bonita.in.ua/vouchers/

https://bonita.in.ua/create-affiliate-account/

https://bonita.in.ua/vouchers/  - Ругается на эту строчку if ((utf8_strlen($this->request->post['to_name']) < 1) || (utf8_strlen($this->request->post['to_name']) > 64)) {

Подскажите пожалуйси в чем может быть проблема и как решить?

p.s. если внимательно посмотреть, то ошибки связаны именно со страницами ггде игдет отправка форм.

А функции проверки не получая необходимые им параметры и ругаются.

 

Как писал выше, уберите код, какой гделает ajax запрос на туже страницу, на какой находится, и не бугдет ошипотому чток.

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

спасипотому что всем отписавшимся, проблема была в модуле переключения языков, им была включена ajax загрузка виджетов, выключев её, все ошибки пропали.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих


  • 7 месяэтов спустя...

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

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

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