Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Ошибка при добавлении отзыва к товару


Shcwab

Recommended Posts

Здраствуйте!

Версия магазина: ocStore v1.5.4.1 rus

Из изменений: Установлен также шаблон Technics_for_live_ocstore_v1.5.4

Хостинг: у хостера. Магазин установился без проблем, шаблон тоже.

Поиск проблемы на вашем форуме результата не дал.

С движком магазина ранее не работал, в программировании - чайник.

Проблема:

Столкнулся с ошибкой при добавлении отзыва к товару: Название отзыва должно быть от 3 до 25 символов!

При этом имя автора указывается в соответствии с требуемыми ограничениями. Через админ-панель Каталог - Отзывы, отзыв добавляется нормально без проблем.

Исходя из логики ошибки, решил пробовать править ограничение длины имени автора отзыва в файле product.php находящийся в catalog/controller/product . В строке 497 этого файла нашел следующий код:

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

При изменении 3 на любое другое число кроме 0 ошибка повторялась. При значении минимальной длины равной нулю, содержание отзыва передается на утверждение в админ-панель, но с пустым полем Автор. В базе данных в таблице review

в столбце author соответственно тоже пустые ячейки. Получается, что форма созданая на страние товара для имени автора отзыва не передает в БД никаких значений? Вот код файлов product.tpl и review.tpl может причина в установленном шаблоне...

Путь к этим файлам: catalog/view/theme/electronics/template/product

product.tpl:

<?php } ?>

<?php if ($review_status) { ?>

<div id="tab-review" class="tab-content">

<div id="review"></div>

<h2 id="review-title"><?php echo $text_write; ?></h2>

<b><?php echo $entry_name; ?></b><br/>

<input type="text" name="name" value="" />

<br />

<br />

<b><?php echo $entry_review; ?></b>

<textarea name="text" cols="40" rows="8" style="width: 98%;"></textarea>

<span style="font-size: 11px;"><?php echo $text_note; ?></span><br />

<br />

<b><?php echo $entry_rating; ?></b> <span><?php echo $entry_bad; ?></span> 

<input type="radio" name="rating" value="1" />

 

<input type="radio" name="rating" value="2" />

 

<input type="radio" name="rating" value="3" />

 

<input type="radio" name="rating" value="4" />

 

<input type="radio" name="rating" value="5" />

 <span><?php echo $entry_good; ?></span><br />

<br />

<b><?php echo $entry_captcha; ?></b><br />

<input type="text" name="captcha" value="" />

<br />

<img src="index.php?route=product/product/captcha" alt="" id="captcha" /><br />

<br />

<div class="buttons">

<div class="right"><a id="button-review" class="button"><?php echo $button_continue; ?></a></div>

</div>

</div>

<?php } ?>

<?php if ($products) { ?>

<div id="tab-related" class="tab-content">

<div class="box-product">

<?php foreach ($products as $product) { ?>

<div>

<?php if ($product['thumb']) { ?>

<div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>

<?php } ?>

<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>

<?php if ($product['price']) { ?>

<div class="price">

<?php if (!$product['special']) { ?>

<?php echo $product['price']; ?>

<?php } else { ?>

<span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>

<?php } ?>

</div>

<?php } ?>

<?php if ($product['rating']) { ?>

<div class="rating"><img src="catalog/view/theme/electronics/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>

<?php } ?>

review.tpl:

<?php if ($reviews) { ?>

<?php foreach ($reviews as $review) { ?>

<div class="review-list">

<div class="author"><b><?php echo $review['author']; ?></b> <?php echo $text_on; ?> <?php echo $review['date_added']; ?></div>

<div class="rating"><img src="catalog/view/theme/electronics/image/stars-<?php echo $review['rating'] . '.png'; ?>" alt="<?php echo $review['reviews']; ?>" /></div>

<div class="text"><?php echo $review['text']; ?></div>

</div>

<?php } ?>

<div class="pagination"><?php echo $pagination; ?></div>

<?php } else { ?>

<div class="content"><?php echo $text_no_reviews; ?></div>

<?php } ?>

Из-за чего могла возникнуть такая ошибка и где еще может таиться подвох?

Надіслати
Поділитися на інших сайтах


замените "utf8_" на "mb_" в функциях и проверьте.

возможно это связано с настройками сервера.

подобный вопрос уже поднимался, но у меня локально при установке движка "из-коробки" все ок.

  • +1 1
Надіслати
Поділитися на інших сайтах

Попробовал заменить "utf8_" на "mb_" в функциях как вы посоветовали - не помогло, к сожалению. Тогда по вашему предположению задумался над настройками сервера. Решил проверить следующим способом: на другой мой свободный домен на этом сервере поставил движек как он есть с вашего сайта без всяких там шаблонов. И отзывы на нем работают как тому положено быть. Значит, получается беда таится всё-таки в файлах шаблона... Но с другой стороны я пробовал из дефаултовской темы сборки заменять тпл файлы product.tpl и review.tpl в новой теме и безрезультатно. А где там еще может быть проблема? И подскажите пожалуйста еще, вы сказали что тема поднималась, но я не нашел нигде такого обсуждения, может вы можете поделиться ссылкой на такую тему? Понятно что проблема неочевидная, но кто то же должен был её решить раз она возникала не только у меня...

Надіслати
Поділитися на інших сайтах


Решилась проблема! Как и думалось дело оказалось в установленном шаблоне. А именно в форме обратной связи которая была реализована при помощи javascript. Происходил какой то конфликт... После удаления скрипта отзыв стал отправляться без ошибки! Тему можно закрывать. Спасибо всем кто пытался думать над моей проблемой.

Надіслати
Поділитися на інших сайтах


вы бы точнее описали - какая форма, какой скрипт, какие файлы :wink:

форма в которой покупатель указывает свое имя, e-mail и собственно свой вопрос и эта информация приходит на e-mail магазина. Форма была спрятана в правой части сайта и выезжала при активации. Это была доработка автора шаблона который был у него приобретен. Обратился к нему когда уже точно понял что проблема именно в шаблоне. Файлы скрипта считаю вылаживать было бы не корректно по отношению к автору, а так бы поделился.

Надіслати
Поділитися на інших сайтах


  • 6 months later...

Решилась проблема! Как и думалось дело оказалось в установленном шаблоне. А именно в форме обратной связи которая была реализована при помощи javascript. Происходил какой то конфликт... После удаления скрипта отзыв стал отправляться без ошибки! Тему можно закрывать. Спасибо всем кто пытался думать над моей проблемой.

Но это не решение проблемы - как же тогда форма обратной связи???

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.