Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fatal error: Call to undefined function mb_strlen()

Tags:

php

I'm trying to make a donation center which I use the source code from Totorialzine.

Everything works fine for me at this moment so far but the only problem I was struggling on and trying to look at for the whole day and can't figure what is actually wrong with the code exactly

here is what I get when I submit the comment on the page when my visitors donate.

Fatal error: Call to undefined function mb_strlen() in /home/yoursn0w/public_html/livetv/premium/thankyou.php on line 14

and here is the code in the php file.

<?php

require "config.php";
require "connect.php";

if(isset($_POST['submitform']) && isset($_POST['txn_id']))
{
    $_POST['nameField'] = esc($_POST['nameField']);
    $_POST['websiteField'] =  esc($_POST['websiteField']);
    $_POST['messageField'] = esc($_POST['messageField']);

    $error = array();

    if(mb_strlen($_POST['nameField'],"utf-8")<2)
    {
        $error[] = 'Please fill in a valid name.';
    }

    if(mb_strlen($_POST['messageField'],"utf-8")<2)
    {
        $error[] = 'Please fill in a longer message.';
    }

    if(!validateURL($_POST['websiteField']))
    {
        $error[] = 'The URL you entered is invalid.';
    }

    $errorString = '';
    if(count($error))
    {
        $errorString = join('<br />',$error);
    }
    else
    {
        mysql_query("   INSERT INTO dc_comments (transaction_id, name, url, message)
                        VALUES (
                            '".esc($_POST['txn_id'])."',
                            '".$_POST['nameField']."',
                            '".$_POST['websiteField']."',
                            '".$_POST['messageField']."'
                        )");

        if(mysql_affected_rows($link)==1)
        {
            $messageString = '<a href="donate.php">You were added to our donor list! &raquo;</a>';
        }
    }
}

?>

I have my database in the phpMyAdmin uploaded completed

here is where I follow the instruction of the installation

http://tutorialzine.com/2010/05/donation-center-php-mysql-paypal-api/

like image 206
Ali Avatar asked Jun 21 '11 00:06

Ali


4 Answers

The function mb_strlen() is not enabled by default in PHP. Please read the manual for installation details:

http://www.php.net/manual/en/mbstring.installation.php

like image 61
AJ. Avatar answered Nov 08 '22 11:11

AJ.


To fix this install the php7.0-mbstring package:

sudo apt install php7.0-mbstring
like image 42
Usman Avatar answered Nov 08 '22 10:11

Usman


For me the following command did the trick

sudo apt install php-mbstring
like image 15
webmaster Avatar answered Nov 08 '22 10:11

webmaster


On Centos, RedHat, Fedora and other yum-my systems it is much simpler than the PHP manual suggests:

yum install php-mbstring
service httpd restart
like image 7
kubanczyk Avatar answered Nov 08 '22 11:11

kubanczyk