Jump to content
Sign in to follow this  
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 } ?>

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

Share this post


Link to post
Share on other sites

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

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

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

  • +1 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
вы бы точнее описали - какая форма, какой скрипт, какие файлы :wink:

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.