I have two sites using Codeigniter. Today I have updated sites to Codeigniter 3.1.7 (from 3.1.6). After that at one of this sites email validation had broken, valid_email validation rule doesn't work any more. On second site all fine. I had check out error logs and found error:
ERROR - 2018-02-06 10:13:21 --> Severity: Warning --> idn_to_ascii() expects parameter 3 to be long, string given /public_html/system/libraries/Form_validation.php 1235
Codeigniter's changlog says:
Updated Form Validation Library rule valid_email to use INTL_IDNA_VARIANT_UTS46 for non-ASCII domain names.
It seems to me that INTL_IDNA_VARIANT_UTS46 constant is not defined. Site using PHP Version 5.6.30
How can I fix this issue?
I found discussion of this problem here.
Issue is outdated ICU library (ICU version 4.2.1 was installed)
Go to system/library/email.php and replace valid_email()
public function valid_email($email)
{
if (function_exists('idn_to_ascii') && defined('INTL_IDNA_VARIANT_UTS46') && $atpos = strpos($email, '#'))
{
$email = self::substr($email, 0, ++$atpos).idn_to_ascii(self::substr($email, $atpos), 0, INTL_IDNA_VARIANT_UTS46);
}
return (bool) filter_var($email, FILTER_VALIDATE_EMAIL);
}
just get the latest library for email
Get the latest codeigniter zip file
then go to system->libraries->Email file
copy that email file and paste it into your previous Email.php library file then it will work
I think there's a better way to sort out that issue.
As we all know that email library not supported in php 7.2 and that's why error occured
idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated
Error Screenshot of codeigniter email library
Quick Solution :
--> Go to cPanel
--> Select PHP version
--> change it to 7.1 instead of 7.2
For my case. I am also facing this issue.
Error:
Severity: 8192
Message: idn_to_ascii(): INTL_IDNA_VARIANT_2003 is deprecated Filename: libraries/Form_validation.php
Line Number: 1234
I downloaded the Latest CodeIgniter version. Then from the system/libraries folder copied Email.php and Form_validation.php. Then replaced with Existing Email.php and Form_validation.php at the same path.
After replace, It is start working Fine..!!
Thanks #Evgeny for Guide.
The above issue would occur when you have incompatible CI and PHP version combinations. I mean newer PHP version and older CI version, vice-versa. I had PHP 7.3 on my machine and the CI repo/project I downloaded from github had CI version 3.1.5. I had to replace the system folder (of 3.1.5 with that of newer CI versions, 3.1.10 in my case) to resolve this issue
After I run composer update on AWS PHP SDK I started to get this error:
Fatal error: Interface 'Guzzle\Common\HasDispatcherInterface' not found in <path>
There is HasDispatcherInterface.php file in <path>, but I still get the error. Is this a bug? If it is, is there any workaround?
So it turned out this is about a 12 year old bug of PHP. https://bugs.php.net/bug.php?id=18556
When you use setlocale('tr_TR'), PHP can not find any class or method has an 'I' letter in its name. Even if its a standart library. Great.
I am using glassfish4 server and codeigniter php framework.
I am new to glassfish server. I followed the oracle documentation for installing and configuring glassfish4 with quercus-4.0.1 and simple php scripts running well.
But when come to codeigniter framework, I got the following error:
Message: Method call 'item' is not allowed for a null value.Filename:
libraries/Session.php
I am getting this error even after modified the session.php file. If I not invoke the session class, then this error will not show, but the whole frame will not work. Any solution?
I'm using this LdapBundle.
I have already installed it, but I catch an error:
Fatal error: Call to undefined method Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::addSecurityListenerFactory() in C:\wamp\www\trainingboard\src\IMAG\LdapBundle\IMAGLdapBundle.php on line 41
I know that I have to change my Symfony version to 2.1. I tried to change folder Symfony in vendors, but after that I caught another error. So, I can't so simple change Symfony. Can you give me advice what to do?
P.S. Now I'm using the 2.0.9 version of Symfony
IMAGLdapBundle only works with Symfony 2.0.x
Instead you can try FR3DLdapBundle 1.6.x
Hello
I am using joomla insttalation in WAMP Server 2.2 installation all are the complate, after that i RUN joomla this type of error occur in home page how to remove that.....plz help me
NOTICE:Array to string conversion in C:\wamp\www\joomlawebsite\components\com_banners\models\banners.php on line 44
Array to string conversion in C:\wamp\www\joomlawebsite\components\com_banners\models\banners.php on line 45
If you are using a 5.4 version of PHP, try downgrading to 5.3 (that should fix the issue as per this Joomla thread.)