• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

XF 1.2 Error after updating to PHP 5.6

#1
I'm running a 1.2 xenforo forum (if i remember correctly, 1.2.7) and 2 days ago my host updated the PHP version to 5.6. Since then, i'm having, at least, an error when registering:

iconv_set_encoding(): Use of iconv.internal_encoding is deprecated
  1. XenForo_Application::handlePhpError()
  2. iconv_set_encoding() in Zend/Validate/Hostname.php at line 521
  3. Zend_Validate_Hostname->isValid() in Zend/Uri/Http.php at line 449
  4. Zend_Uri_Http->validateHost() in Zend/Uri/Http.php at line 281
  5. Zend_Uri_Http->valid() in Zend/Uri/Http.php at line 154
  6. Zend_Uri_Http->__construct() in Zend/Uri.php at line 143
  7. Zend_Uri::factory() in Zend/Http/Client.php at line 270
  8. Zend_Http_Client->setUri() in Zend/Service/ReCaptcha.php at line 485
  9. Zend_Service_ReCaptcha->_post() in Zend/Service/ReCaptcha.php at line 502
  10. Zend_Service_ReCaptcha->verify() in XenForo/Captcha/ReCaptcha.php at line 53
  11. XenForo_Captcha_ReCaptcha->isValid() in XenForo/Captcha/Abstract.php at line 129
  12. XenForo_Captcha_Abstract::validateDefault() in XenForo/ControllerPublic/Register.php at line 200
  13. XenForo_ControllerPublic_Register->actionRegister() in Ragtek/Invite/ControllerPublic/Register.php at line 23
  14. Ragtek_Invite_ControllerPublic_Register->actionRegister() in XenForo/FrontController.php at line 347
  15. XenForo_FrontController->dispatch() in XenForo/FrontController.php at line 134
  16. XenForo_FrontController->run() in /customers/0/6/1/megaspain.eu/httpd.www/index.php at line 13
I'd like to know how can i solve it without updating it (i've saw something about 1.3.6 being fixed) but i'd like to know how can i solve it, because i have a lot of 1.2 addons plus many own code and it would require a big amount of work to update it to a newer version (I'm waiting until xenforo 2.0 to even think about migrating).

Regards
 

MattW

Well-known member
#2
Looks like they do a check for the PHP version now

PHP:
            $origenc = PHP_VERSION_ID < 50600
                        ? iconv_get_encoding('internal_encoding')
                        : ini_get('default_charset');
            if (PHP_VERSION_ID < 50600) {
                iconv_set_encoding('internal_encoding', 'UTF-8');
            } else {
                @ini_set('default_charset', 'UTF-8');
            }