Ich versuche ein Spendencenter zu erstellen, in dem ich den Quellcode von Totorialzine verwende.
Bis jetzt funktioniert alles gut für mich, aber das einzige Problem, mit dem ich den ganzen Tag zu kämpfen hatte und das ich mir ansehen wollte, ist, dass ich nicht genau herausfinden kann, was mit dem Code tatsächlich nicht stimmt
Folgendes erhalte ich, wenn ich den Kommentar auf der Seite abschicke, wenn meine Besucher spenden.
Fatal error: Call to undefined function mb_strlen() in /home/yoursn0w/public_html/livetv/premium/thankyou.php on line 14
und hier ist der Code in der PHP-Datei.
<?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! »</a>';
}
}
}
?>
Ich habe meine Datenbank im phpMyAdmin hochgeladen abgeschlossen
Hier folge ich den Anweisungen der Installation
http://tutorialzine.com/2010/05/donation-center-php-mysql-paypal-api/
Antworten:
Die Funktion
mb_strlen()
ist in PHP standardmäßig nicht aktiviert. Bitte lesen Sie das Handbuch für Installationsdetails:http://www.php.net/manual/en/mbstring.installation.php
quelle
phpinfo()
. Durchsuchen Sie die Ausgabe dieser Seite nach dem Modul "mbstring". Wenn Sie es dort nicht sehen, ist es nicht installiert.phpinfo()
. Bitte versuchen Sie dies gemäß meinem vorherigen Kommentar und prüfen Sie, ob tatsächlich mbstring für Ihre Umgebung installiert ist.phpinfo()
. Sie setzen sich einem Risiko aus, indem Sie Ihren öffentlichen Hostnamen veröffentlichen. Meine Absichten sind es, Ihnen zu helfen, aber andere haben möglicherweise böswilligere Absichten.Um dies zu beheben, installieren Sie das Paket php7.0-mbstring:
sudo apt install php7.0-mbstring
quelle
sudo systemctl restart apache2
bevor ich die mbstring-Funktionen verwenden konnte.Für mich hat der folgende Befehl den Trick gemacht
sudo apt install php-mbstring
quelle
Auf Centos, RedHat, Fedora und anderen yum-my-Systemen ist es viel einfacher als im PHP-Handbuch angegeben:
yum install php-mbstring service httpd restart
quelle
Für mich funktionierte dies in Ubuntu 14.04 und für PHP5.6:
$ sudo apt-get install php5.6-mbstring
quelle
Falls Google nach diesem Fehler sucht
Call to undefined function mb_ereg_match()
bringt jemanden zu diesem Thread. Durch die Installation von php-mbstring wird dies ebenfalls behoben.
Ubuntu 18.04.1, PHP 7.2.10
sudo apt-get install php7.2-mbstring
quelle
PHP 7.2 Ubuntu 18.04
sudo apt install php-mbstring
quelle
Das hat bei mir auf Debian Stretch funktioniert
sudo apt-get update sudo apt install php-mbstring service apache2 restart
quelle