Jump to content
Shann

PHP Notice: Undefined variable

Recommended Posts

Здравствуйте, проблема возникла, на сайте  - https://tropickava.com.ua/ на главной, на третьей картинке, есть модуль "подписка на новости", после ввода туда адреса и нажатия на кнопку "отправить" в журнал ошибок падает такая вот строка:

PHP Notice: Undefined variable: description in /home/uh413434/domains/tropickava.com.ua/public_html/catalog/view/theme/theme658/template/module/tm_newsletter.tpl on line 4

которая ссылается на строку -  4:  <?php if ($description){?><p class="newsletter-description"><?php echo $description;?></p><?php }?>

Раздражает ппц как, чего оно ноет как исправить о_О ? 

Opencart 2.1.0.2

Share this post


Link to post
Share on other sites

Элементарно.Обратиться к автору темы у которого она куплена.

Share this post


Link to post
Share on other sites
1 час назад, Tom сказал:

Элементарно.Обратиться к автору темы у которого она куплена.

молчит автор )

а ошибка не элементарная - типа где-то запятая пропущена?

Share this post


Link to post
Share on other sites

ошибка элементарная

ifset($description)

 

Share this post


Link to post
Share on other sites

Точнее покажи две сверху и две снизу и я скажу тебе точный ответ с вероятностью 95 %

Share this post


Link to post
Share on other sites
5 минут назад, interpol сказал:

Точнее покажи две сверху и две снизу и я скажу тебе точный ответ с вероятностью 95 %

<div id="tm-newsletter" class="box newsletter">
    <div class="box-heading"><h2><?php echo $heading_title; ?></h2></div>
    <div class="box-content">
        <?php if ($description){?><p class="newsletter-description"><?php echo $description;?></p><?php }?>
        <form method="post" enctype="multipart/form-data" id="tm-newsletter-form">
            <div class="tm-login-form">                
                <input type="text" name="tm_newsletter_email" value="" placeholder="<?php echo $entry_mail; ?>" id="input-tm-newsletter-email" class="form-control"/>
                <button type="submit" id="tm-newsletter-button" class="dropdown-btn"><?php echo $button_subscribe; ?></button>
                <label class="control-label" for="input-tm-newsletter-email"></label>
            </div>
            <span id="tm-newsletter_error" class="newsletter-error"></span>
            <span id="tm-newsletter_success" class="newsletter-success"></span>
        </form>

    </div>
</div>

Share this post


Link to post
Share on other sites
41 минуту назад, chukcha сказал:

ошибка элементарная

ifset($description)

 

когда if заменил на ifset то главная вообще не грузится, в консоли выпадает - https://tropickava.com.ua/ 500 (Internal Server Error)

Share this post


Link to post
Share on other sites

Ты пытаешься вызвать не существующую переменную, обработай ее isset()
<?php if (isset($description)){?><p class="newsletter-description"><?php echo $description;?></p><?php }?>

  • +1 1

Share this post


Link to post
Share on other sites
8 минут назад, interpol сказал:

Ты пытаешься вызвать не существующую переменную, обработай ее isset()
<?php if (isset($description)){?><p class="newsletter-description"><?php echo $description;?></p><?php }?>

спасибо, ошибка исчезла, счастье есть :)

вообще шаблон от templatemonster просто пестрит такими вещами, а этот модуль вообще гениален - они сделали модуль который собирает е-мейлы, при этом эти адреса тупо нигде не выводятся в админке, их можно посмотреть только в phpmyadmin, и почистить например тоже только там - ну не идиоты? Еще не факт что по ним хоть какие-то письма рассылаются :)

Share this post


Link to post
Share on other sites
17 минут назад, L0ky сказал:

когда if заменил на ifset

иии..

google в помощь

ifset php - выпадет все что касается isset

 

Share this post


Link to post
Share on other sites
1 час назад, chukcha сказал:

ошибка элементарная

Можно подробней?

Что возвращает  if ($description), если переменная $description у нас Undefined ?

 

Share this post


Link to post
Share on other sites
8 минут назад, chukcha сказал:

иии..

google в помощь

ifset php - выпадет все что касается isset

 

Я не видел такого не разу за столько, может не те книги читаю или не ту травку курю, и проверил на php 5.6 не работает и гугл не дает результат

  • +1 1

Share this post


Link to post
Share on other sites
4 минуты назад, interpol сказал:

Я не видел такого не разу за столько, может не те книги читаю или не ту травку курю, и проверил на php 5.6 не работает и гугл не дает результат

Опечатка. И гугл это сразу понял.:-D И даже подсказал, как правильно.

Share this post


Link to post
Share on other sites
4 минуты назад, florapraktik сказал:

Опечатка. И гугл это сразу понял.:-D И даже подсказал, как правильно.

Не понял

Share this post


Link to post
Share on other sites
1 минуту назад, interpol сказал:

Не понял

:-D

Не знаю, как у Вас, но когда я вставляю в строку поиска  ifset, то первая же подсказка от гугул это  isset php = нет никакого ifse - это опечатка.

Если настоять и спросить  ifset php, то гугл не сдаётся и показывает результаты для isset php

Не знаю, я сразу понял, что это опечатка.:-)

 

А Вы не скажите, что возвращает  if ($description) ?

Share this post


Link to post
Share on other sites

что-то там должно быть

Но что там, нужно смотреть по коду, а не гадать

 

Share this post


Link to post
Share on other sites

С этим я согласен, но я делал на точный результат и видел код с использованием ifset в функции.

Share this post


Link to post
Share on other sites

Судя по всему выдернули какой-нибудь код подписки, где было еще одно поле

В шаблоне его удалили, а в контроллере забыли, вот и вся радость

Share this post


Link to post
Share on other sites
1 минуту назад, chukcha сказал:

Судя по всему выдернули какой-нибудь код подписки, где было еще одно поле

В шаблоне его удалили, а в контроллере забыли, вот и вся радость

Чуть подправлю, в контроллере удалили а в шаблоне забыли так будет думаю правильней.

Share this post


Link to post
Share on other sites

А сильно геморрно вывести собранные емейлы где-то в админке?

Share this post


Link to post
Share on other sites

Нет, могу написать модуль для этого за плату если интересно.

Share this post


Link to post
Share on other sites
1 час назад, chukcha сказал:

что-то там должно быть

Но что там, нужно смотреть по коду, а не гадать

Вопрос другой.

если не сложно:

<?php
    if ($var) {
                  ?> <p>$var существует</p>  <?php
    } else {
              ?> <p>$var НЕ существует</p>  <?php
      }
?>

Если переменная $var не определена, то код выдаёт <p>$var НЕ существует</p>

И не выпадает никаких ошибок или варнингов.

Т.е., if ($var) возвращает false если переменная $var не определена. И всё. И это не ошибка. Это допустимая проверка на существование. У меня такая конструкция прокатывает.

Сделал вот так:

<?php
    $var = 'описание';
    if ($var) {  echo $var;  }
?>

на выходе получил  описание

Сделал вот так:

<?php
    if ($var) {  echo $var;  }
?>

На выходе получил ничего. Совсем ничего. Никаких варнингов или ошибок.

То есть if ($var) по сути = if (isset($var)) 

Или нет? Я в растерянности....

 

Edited by Skunk
[code]

Share this post


Link to post
Share on other sites

А теперь вот так:

<?php if (isset($var)) {echo $var;} ?>

Share this post


Link to post
Share on other sites
14 минут назад, Skunk сказал:

А теперь вот так:

<?php if (isset($var)) {echo $var;} ?>

Дык, пробовал - аналогично.

<?php
    $var = 'описание';
    if (isset($var)) {  echo $var;  }
?>

Выдаёт описание

 

<?php
    if (isset($var)) {  echo $var;  }
?>

не выдаёт ничего.

Поведение if (isset($var)) полностью аналогично поведению  if ($var) - в обоих случаях при отсутствии $var просто html документ идёт дальше. и всё.

 

Кажется, понял (или нет):

<?php
     echo $var; 
?>

$var не существует, но один фик никаких варнингов. Наверное, настройки какие-то, да?

Edited by florapraktik

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.


  • 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.