致命错误:调用未定义的函数mb_strlen()

时间:2011-06-21 00:33:11

标签: php mysql database

我正在尝试建立一个捐赠中心,我使用的是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/

9 个答案:

答案 0 :(得分:67)

PHP中默认不启用函数mb_strlen()。请阅读手册了解安装细节:

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

答案 1 :(得分:23)

要修复此安装php7.0-mbstring包:

sudo apt install php7.0-mbstring

答案 2 :(得分:5)

在Centos,RedHat,Fedora和其他yum-my系统上,它比PHP手册建议的要简单得多:

yum install php-mbstring
service httpd restart

答案 3 :(得分:5)

对我来说,以下命令可以解决这个问题

sudo apt install php-mbstring

答案 4 :(得分:3)

对我来说,这适用于Ubuntu 14.04和php5.6:

$ sudo apt-get install php5.6-mbstring

答案 5 :(得分:1)

如果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

答案 6 :(得分:0)

PHP 7.2 Ubuntu 18.04

sudo apt install php-mbstring

答案 7 :(得分:0)

这在 Debian延伸

上对我有用
<xsl:apply-templates/>

答案 8 :(得分:0)

这个问题似乎与 Unix 上的 PHP 相关。但是,对于在 Windows 上遇到此问题的 PHP 的任何人,请参阅 https://www.php.net/manual/en/install.pecl.windows.php

由于多字节字符串支持是核心 PHP 扩展,因此在 Windows 上所需要做的就是在 php.ini 中取消注释此行:

extension=php_mbstring.dll