0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 318 Просмотров
*

Vas80

  • Захожу иногда
  • 195
  • 0 / 1
Ошибка в компоненте CKForms
« : 17.04.2019, 18:36:20 »
Друзья, на Joomla 1.5 глючит компонент CKForms.

Выдает такую ошибку
Fatal error: Call to undefined function session_unregister() in

/www/components/com_ckforms/controller.php on line 75

Подскажите пожалуйста как починить?
*

sivers

  • Давно я тут
  • 716
  • 75 / 0
Re: Ошибка в компоненте CKForms
« Ответ #1 : 17.04.2019, 20:45:13 »
Подскажите пожалуйста как починить?
Функция устарела и выпилена их php начиная с версии 5.4.0, соответственно, или PHP откатить на старую (очень) версию, или убрать использование этой функции. Еще вариант - добавить эту функцию самому (где угодно  до первого вызова).
На связи в телеге @sivers
*

Vas80

  • Захожу иногда
  • 195
  • 0 / 1
Re: Ошибка в компоненте CKForms
« Ответ #2 : 18.04.2019, 12:56:06 »
Функция устарела и выпилена их php начиная с версии 5.4.0, соответственно, или PHP откатить на старую (очень) версию, или убрать использование этой функции. Еще вариант - добавить эту функцию самому (где угодно  до первого вызова).
А как это сделать практически?
Какую именно функцию надо добавлять? Где взять такую функцию и куда вставлять?
*

sivers

  • Давно я тут
  • 716
  • 75 / 0
Re: Ошибка в компоненте CKForms
« Ответ #3 : 18.04.2019, 13:05:50 »
А как это сделать практически?
Например, дописать в файл /includes/defines.php код:
Код
if(!function_exists('session_unregister')){
    function session_unregister($name){
        if(isset($_SESSION[$name])){
            unset($_SESSION[$name]);
            return true;
        }
        return false;
    }
}

Этот файл перезатираемый, но врядли вы будете обновлять Joomla 1.5
На связи в телеге @sivers
*

Vas80

  • Захожу иногда
  • 195
  • 0 / 1
Re: Ошибка в компоненте CKForms
« Ответ #4 : 18.04.2019, 13:19:24 »
Сделал так. Теперь перекидывает на главную страницу. И сообщение что письмо отправлено не показывается.
Вот код компонента.
Как восстановить работоспособность?


function captcha()
   {
      include("components/com_ckforms/captcha/securimage.php");
            
      $document = &JFactory::getDocument();
      $doc = &JDocument::getInstance('raw');
      $document = $doc;
      $img = new Securimage();
      $img->ttf_file = "components/com_ckforms/captcha/elephant.ttf";
      $img->show();
   }

   function  display()
   {
      $model = $this->getModel('ckforms');
      $model->addHits();
      
      $_SESSION['ck_send_once'.JRequest::getCmd('id')] = "1";
      $_SESSION['ck_cache_page_'.JRequest::getCmd('id')] = md5(JRequest::getURI());
      
      parent::display();
   }

   /**
    * save a record (and redirect to main page)
    * and send emails
    * @return void
    */
   function send()
   {      
      $model = $this->getModel('ckforms');
      $ckform = $model->getData();      

      if ($ckform->captcha == 1)
      {
         include("components/com_ckforms/captcha/securimage.php");
         
         $img = new Securimage();
         
         $valid = $img->check($_POST['ck_captcha_code']);         
         
         if($valid == false) {
            JError::raiseWarning( 0, JText::_( "Sorry, the code you entered was invalid" ));
            
            $this->display();
            return false;
         }
      }
      if (isset($_SESSION['ck_send_once'.$ckform->id]))
      {
         session_unregister('ck_send_once'.$ckform->id);
      
      } else {
         JError::raiseWarning( 0, JText::_( "Sorry, you can send the form only once" ));
         return false;      
      }
         
      session_unregister('securimage_code_value');
         
      $post = JRequest::get('post', JREQUEST_ALLOWHTML);   
      
      $model->saveData($post);            

      if (isset($_SESSION['ck_cache_page_'.$ckform->id]))
      {
         $cacheid = $_SESSION['ck_cache_page_'.$ckform->id];
         $cache = &JFactory::getCache();
         $cacheresult = $cache->remove($cacheid, 'page');
      }
      
      $msg = JText::sprintf('Form successfully sent', 1);
      
      if ( isset($ckform->redirecturl) && $ckform->redirecturl != "") {
         
         $params = '';
         
         if ($ckform->redirectdata == 1)
         {
            foreach ($post as $key => $value) {
               $params = $params . '&'. $key.'='.htmlentities($value);
            }
            if (strlen($params) > 0 && strpos($ckform->redirecturl, '?') === false)
            {
               $params = '?'.substr($params, 1);
            }
         }
         $this->setRedirect($ckform->redirecturl.$params);
         
         
      } else if ((isset($ckform->redirecturl) == false || $ckform->redirecturl == "")
         && ((isset($ckform->textresult) == false || $ckform->textresult == ""))) {
         $this->setRedirect(JURI::base(), $msg);
      }
      
      JRequest::setVar( 'view', 'ckforms' );
      JRequest::setVar( 'layout', 'message'  );
      
      parent::display();

   }
}
?>
« Последнее редактирование: 18.04.2019, 14:42:42 от Vas80 »
*

sivers

  • Давно я тут
  • 716
  • 75 / 0
Re: Ошибка в компоненте CKForms
« Ответ #5 : 18.04.2019, 13:21:48 »
Скорее всего отсутствие функции - это не единственная ошибка, которая возникла в следствие обновления PHP. Посмотрите логи на сервере или отладку в Joomla.
На связи в телеге @sivers
*

Vas80

  • Захожу иногда
  • 195
  • 0 / 1
Re: Ошибка в компоненте CKForms
« Ответ #6 : 19.04.2019, 15:45:47 »
Может, у кого то была такая ошибка. Есть готовое решение?
*

Vas80

  • Захожу иногда
  • 195
  • 0 / 1
Re: Ошибка в компоненте CKForms
« Ответ #7 : 22.04.2019, 12:44:22 »
Подскажите, как справить ошибки...
*

Vas80

  • Захожу иногда
  • 195
  • 0 / 1
Re: Ошибка в компоненте CKForms
« Ответ #8 : 22.04.2019, 12:45:00 »
ИЛИ альтернативный вариант....
*

sivers

  • Давно я тут
  • 716
  • 75 / 0
Re: Ошибка в компоненте CKForms
« Ответ #9 : 22.04.2019, 13:34:48 »
Подскажите, как справить ошибки...
Включить вывод ошибок (если отключен) в настройках Joomla. Если их все равно не видо - смотреть в логах. Когда станет понятно на что ругается - исправлять.
На связи в телеге @sivers
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибка #1050 при переносе базы данных на хостинг

Автор Ksen

Ответов: 6
Просмотров: 14198
Последний ответ 30.03.2019, 12:02:52
от nontad
Ошибка Fatal error: Allowed memory size of 73400320 bytes exhausted

Автор Andre109

Ответов: 1
Просмотров: 872
Последний ответ 03.12.2018, 01:29:56
от voland
Ошибка при загрузке модулей:MySQL server has gone away

Автор svskach

Ответов: 13
Просмотров: 3918
Последний ответ 31.01.2018, 10:56:15
от Evrokub
Вместо админки - ошибка 404

Автор goshanchiik

Ответов: 4
Просмотров: 650
Последний ответ 04.08.2017, 22:37:23
от voland
Ошибка 502 Bad Gateway на нескольких страницах

Автор Elimelech

Ответов: 1
Просмотров: 788
Последний ответ 30.06.2017, 22:36:18
от ProtectYourSite