Неустранимая ошибка: вызов неопределенной функции mb_strlen () - PullRequest
57 голосов
/ 21 июня 2011

Я пытаюсь создать центр для пожертвований, в котором я использую исходный код Totorialzine.

Пока у меня все отлично, но единственная проблема, над которой я боролся и пытался смотреть весь день и не могу понять, что на самом деле не так с кодом точно

вот что я получаю, когда отправляю комментарий на страницу, когда мои посетители делают пожертвования.

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

и вот код в php-файле.

<?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>';
        }
    }
}

?>

Моя база данных в phpMyAdmin загружена завершена

вот где я следую инструкции по установке

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

Ответы [ 6 ]

69 голосов
/ 21 июня 2011

Функция mb_strlen() не включена по умолчанию в PHP.Пожалуйста, прочитайте руководство для деталей установки:

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

25 голосов
/ 19 мая 2016

Чтобы исправить это, установите пакет php7.0-mbstring:

sudo apt install php7.0-mbstring
5 голосов
/ 04 декабря 2017

Для меня следующая команда сделала трюк

sudo apt install php-mbstring
5 голосов
/ 14 апреля 2016

В Centos, RedHat, Fedora и других системах yum-my это намного проще, чем в руководстве по PHP:

yum install php-mbstring
service httpd restart
4 голосов
/ 07 марта 2017

Для меня это работало в Ubuntu 14.04, а для php5.6:

$ sudo apt-get install php5.6-mbstring
1 голос
/ 18 января 2019

В случае, если Google ищет эту ошибку

Call to undefined function mb_ereg_match()

ведет кого-то в эту ветку. Установка php-mbstring также разрешает эту проблему.

Ubuntu 18.04.1, PHP 7.2.10

sudo apt-get install php7.2-mbstring
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...