Avatar

"leere" Antworten in den Postings nach Datenbank Import (General)

by Auge ⌂, Wednesday, September 04, 2019, 14:39 (1689 days ago) @ cw

Hallo

ui, so viele Version gab es?! Ich hatte nach Installation nie wieder ein Update gemacht da ja alles problemlos funktionierte.

Zur Version, unter den Foren Einstellungen => Erweitert ist 1.7 eingetragen (gehe jetzt mal von 1.7.0 aus) ...

Ja, das sollte stimmen.

Hoffe Du kannst damit jetzt mehr anfangen.

Klar.

1. Du hast auf deinem Server PHP noch mit einer 5.x-Version zu laufen. Wenn es PHP 7.irgendwas wäre, würde dein Forum grundsätzlich und vollständig nicht funktionieren.

2. Du solltest schon wegen der Behebung von Fehlern und Sicherheitslücken ein Update auf Version 1.7.8 durchführen. Wenn dein Server irgendwann mit einer PHP-Verion 7.x oder später laufen wird, ist das Update sowieso zwingend fällig.

3. Du solltest in der functions.php die Funktion connect_db finden. Mit der Suchen-Funktion eines Editors (in Windows zum Beispiel Notepad++ oder, mit einem aktuellen Windows 10, auch Notepad) kannst du nach "function connect_db" suchen, um an den Anfang des Codes der Funktion zu springen.

In den Versionen des 1.7.7-er Unterzweigs sieht die Funktion folgendermaßen aus:

 // connects to the database:
 function connect_db($host,$user,$pw,$db)
 {
  global $lang;
  $connid = @mysql_connect($host, $user, $pw);  // Datenbankverbindung herstellen
  if(!$connid) die($lang['db_error']);
  mysql_select_db($db, $connid) or die($lang['db_error']);
  return $connid;
 }

Ergänze den Code folgendermaßen (neue Zeilen durch Kommentare hervorgehoben):

 // connects to the database:
 function connect_db($host,$user,$pw,$db)
 {
  global $lang;
  $connid = @mysql_connect($host, $user, $pw);  // Datenbankverbindung herstellen
  if(!$connid) die($lang['db_error']);
  mysql_set_charset("utf8", $connid);  // <==== oder "utf8mb4" statt "utf8"
  mysql_select_db($db, $connid) or die($lang['db_error']);
  return $connid;
 }

Falls du vorher in deiner Testumgebung(!) auf die Version 1.7.8 updatest (beachte bitte die Namen der verwendeten Funktionen "mysqli_" statt "mysql_"), wird aus ...

// connects to the database:
function connect_db($host,$user,$pw,$db) {
 global $lang;
 $connid = @mysqli_connect($host, $user, $pw, $db);  // open database connection
 if (!$connid) die($lang['db_error']);
 return $connid;
}

... der ergänzte Code:

// connects to the database:
function connect_db($host,$user,$pw,$db) {
 global $lang;
 $connid = @mysqli_connect($host, $user, $pw, $db);  // open database connection
 if (!$connid) die($lang['db_error']);
 mysqli_set_charset($connid, "utf8")  // <==== oder "utf8mb4" statt "utf8"
 return $connid;
}

Allerdings kann es sein, dass dann die neuen Beiträge rumzicken. Es ist durchaus möglich, dass es notwenig ist, auf ISO-8859-1 "downzugraden". Dann müsstest du statt "utf8" oder "utf8mb4" die Kodierungsangabe "latin1" verwenden. Aber du solltest erst einmal mit "utf8" und "utf8mb4" testen. Am besten schaust du mit einem Tool wie phpMyAdmin in die Tabellenstruktur und liest dort den tatsächlich angegebenen Charset aus.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!


Complete thread:

 RSS Feed of thread