Haumis wbb hilfe (http://haumis-wbb-hilfe.de/wbb2/index.php)
- WBB2 (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=3)
-- Fragen zum WBB2 (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=4)
--- Serverumzug/Neuinstallation keine Umlaute (http://haumis-wbb-hilfe.de/wbb2/thread.php?threadid=2830)


Geschrieben von schnofeli am 15.08.2016 um 16:57:

  Serverumzug/Neuinstallation keine Umlaute

Hallo
Wir planen einen Serverumzug und sind an der Installation von WBB2.3.6. Wenn ich nun einen Export der Daten mache, dann steht da z.B.
code:
1:
2:
3:
4:
5:
CREATE TABLE IF NOT EXISTS `bb1_announcements` (
  `boardid` int(11) NOT NULL DEFAULT '0',
  `threadid` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`boardid`,`threadid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci;


Die Daten werden also mit CHARSET=latin1 und die Felder dann mit latin1_german1_ci abgefüllt.

In der Datenbank sind dann auch die Umlaute alle wunderbar drin. Öffne ich dann aber das Forum auf dem neuen Server, dann sind alle Umlaute mit Sonderzeichen, also das
ö = ö
ä = ä
ü = ü
usw. Wenn ich dann in der global von windows-1252 auf UTF8 Unicode umstelle, dann scheint das Problem gelöst zu sein. Aber es scheint nur so, dann in der Shoutbox hatte ich danach keinen Text mehr, sobald man ein Umlaut verwendet. Wieder auf windows-1252 zurückgestellt und die Umlaute waren da in der Shoutbox.

Ich habe auch schon probiert, die Tabellen auf einen anderen CHARSET zu setzen. Wenn ich z.B. utf8_general_ci nehme, dann werden alle neuen Themen, Boards beim Umlaut abgeschnitten und so (z.B. Ank statt Ankündigungen) in der DB gespeichert. Schreibe ich das Wort dann in der Datenbank, dann kommt es richtig in der Datenbank aber falsch im Forum mit der windows-1252

Bei den mysql - Variablen habe ich folgende Einstellungen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
character set client = utf8
(Wert für diese Sitzung) = utf8mb4

character set connection = utf8
(Wert für diese Sitzung ) = utf8mb4

character set database = utf8

character set filesystem = binary

character set results = utf8
(Wert für diese Sitzung ) = utf8mb4

character set server = utf8
character set system = utf8

Ich vermute hier den Fehler, aber ich weiss nicht auf welche Werte ich diese anpassen müsste.

Es ist php 5.5.9 drauf mit MariaDB für mysql 5.0.11 (denke ich).

Hat mir jemand ein Tip wie ich das gerade biegen kann, dass ich mit windows-1252, gem. Standard arbeiten kann?



Geschrieben von haumi am 15.08.2016 um 17:14:

  RE: Serverumzug/Neuinstallation keine Umlaute

Hi schnofeli, wen nur die Shoutbox die Probleme macht dann versuche mal folgendes:

Thread Shoutbox Umlaute

Solltest du die Devils-Shoutbox nutzen dann musst du warten bis ich oben am PC bin, das muss ich für diese Box denn noch erstellen

Oder auch das mal probieren:

Zitat:
Man muss direkt nach dem öffnen der Datenbank folgende Zeilen einfügen!
1. mysql_query("SET NAMES 'utf8'");
2. mysql_query("SET CHARACTER SET 'utf8'");
Damit gehts dann! Vielleicht hilfts ja jemandem

Ich habe es in der global.php gemacht und zwar unter

$db = &new db($sqlhost, $sqluser, $sqlpassword, $sqldb, $phpversion);

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");


LG
haumi



Geschrieben von schnofeli am 15.08.2016 um 17:33:

  RE: Serverumzug/Neuinstallation keine Umlaute

Hallo Haumi

Danke für die rasche Antwort. Es ist nicht Devils Shoutbox und ich denke, dass hier eben nur der 1. Test war mit dem Fehler. Wenn dann alle Leute da sind, und es kommt dann zu dem Umlautproblem, dann ist es ärgerlich.

mysql_query gibt es nicht mehr. Habe das aber durch mysqli_query ersetzt. Hat aber leider nicht geholfen, oder ich habe hier noch etwas falsch gemacht. st8



Geschrieben von haumi am 15.08.2016 um 17:44:

 

Hi Schnofeli,
mysql_query gibt es nach wie vor.

Zitat:
MySQLi ist eine verbesserte (das i steht für improved) Erweiterung von PHP zum Zugriff auf MySQL-Datenbanken. Sie ist im Gegensatz zur ursprünglichen Variante objektorientiert, lässt sich aber auch prozedural benutzen. Ein wesentlicher Vorteil ist, dass mithilfe von sogenannten Prepared Statements SQL-Injection-Angriffe verhindert werden können.


Ich habe es bisher teilweise wegen der Prepared Statements verwendet.
Da das wbb2 aber prozedural aufgebaut ist klappt mysql_query immer noch.
Erst ab wbb3 ist eine objektorientierte Programmierung zu Grunde gelegt.

Zu deiner Aussage:
Zitat:
Wenn ich dann in der global von windows-1252 auf UTF8 Unicode umstelle, dann scheint das Problem gelöst zu sein. Aber es scheint nur so, dann in der Shoutbox hatte ich danach keinen Text mehr, sobald man ein Umlaut verwendet. Wieder auf windows-1252 zurückgestellt und die Umlaute waren da in der Shoutbox.

wenn du das machst und die Änderung aus dem Link weiter oben in die xy-Box einfügst sollte das auch bei dir klappen.
Was eventuell bei deinem Versuch fehlschlägt, ist das mysqli durchgehend verwendet werden muss also auch schon bei der Datenbankverbindung - so ist es jedenfalls bei mir-

LG
hannes



Geschrieben von schnofeli am 15.08.2016 um 18:07:

 

Zitat:
Original von haumi
Hi Schnofeli,
mysql_query gibt es nach wie vor.

OK und danke für den Hinweis. Also wieder entsprechend angepasst in der global.php

Zitat:
Original von haumi
Zu deiner Aussage:
Zitat:
Wenn ich dann in der global von windows-1252 auf UTF8 Unicode umstelle, dann scheint das Problem gelöst zu sein. Aber es scheint nur so, dann in der Shoutbox hatte ich danach keinen Text mehr, sobald man ein Umlaut verwendet. Wieder auf windows-1252 zurückgestellt und die Umlaute waren da in der Shoutbox.

wenn du das machst und die Änderung aus dem Link weiter oben in die xy-Box einfügst sollte das auch bei dir klappen.

Habe das mal in der ...global.php von der Shoutbox rein getan, allerdings ohne Erfolg. Es stand auch geschrieben, dass diese auf UTF8 aufgebaut sei und es hat Code mit utf8_encode und utf8_decode drin.
Zitat:
Original von haumi
Was eventuell bei deinem Versuch fehlschlägt, ist das mysqli durchgehend verwendet werden muss also auch schon bei der Datenbankverbindung - so ist es jedenfalls bei mir-

LG
hannes

genau. Das habe ich heute Nachmittag noch entsprechend der Anleitung von Speedy gemacht, in der Hoffnung es würde daran liegen, weil bei mir im phpMyAdmin drin steht: "PHP-Erweiterung: mysqli"



Geschrieben von haumi am 15.08.2016 um 18:40:

 

Ich denke du verstehts da was falsch.
Du sollst es so einrichten das nur noch die Box den Fehler (keine shouts) aufweist und dann wie hier im Beitrag 2 beschrieben den Code in der xy_megashoutbox.php ändern.
NICHT IN DER global.php

Versuche es mal

LG
haumi



Geschrieben von schnofeli am 15.08.2016 um 18:54:

 

Also in der global.php wieder rausgenommen. Das Problem ist, dass in der Datenbank die ä, ö, ü, auch vorhanden sind, wenn diese jemand in der Shoutbox schreibt. Nur anzeigen tut es sie nicht, wenn ich im den Spracheinstellungen "utf8 unicode" drin habe. Bei "windows-1252" ist mit der Shoutbox alles i.O. Daher kann ich es nicht so umsetzen wie im Beitrag geschrieben steht, weil doch gar keine Umlaute daher kommen. Oder bin ich hier auf dem Holzweg?



Geschrieben von haumi am 15.08.2016 um 19:12:

 

Es werden Ein- und Ausgaben umlauttmäßig bearbeitet.
D. h. wenn in der DB die Umlaute falsch eingeschrieben sind werden sie im Board doch korrekt angezeigt.
Probieren geht über studieren.
Ich denke mal das es auch bei dir klappt, da es bisher immer geklappt hat.
Du kannst die xy_megashoutbox.php einfach mal kopieren und bei nicht funktionieren wieder austauschen.
Versuche es einfach.

LG
haumi



Geschrieben von schnofeli am 15.08.2016 um 19:34:

 

Warst schneller im Antwort geben. st7

Also ich habe das noch ausprobiert. Da steht dann schon im Original:
code:
1:
$message = utf8_decode($row['message']);


demzufolge einmal angepasst auf:
code:
1:
2:
3:
4:
5:
6:
//haumi
$message=htmlspecialchars($message);
$umlaute = array("ä","Ã?¶","ü","Ä","Ö","Ü","ß");
$doppelbuchstaben = array("ä","ö","ü","Ä","Ö","Ü","ss");
$message = str_replace($umlaute,$doppelbuchstaben,$message);
//ende haumi


Die Abänderung der Umlaute demzufolge, weil ich diese so gesehen habe in der Shoutbox, nachdem ich von ...decode... auf ...encode... geändert hatte. Wenn die Einstellung auf decode bleibt, dann ist nach wie vor ein schwarzer Text, resp. nichts da. bei encode kommen die obiigen Zeichen ä=ä usw.



Geschrieben von haumi am 16.08.2016 um 06:51:

 

H Schnofeli,
In meiner Anleitung steht nichts von
$message = utf8_decode($row['message']);
und es ist auch unabhängig davon.
Wenn du dich nicht an die Anleitung hältst, und nur ein Teil von vielen änderst kann es nicht funktionieren.
Nimm eine neue xy_megashoutbox.php und ändere nur folgenes - aber alles!

Öffne xy_megashoutbox.php und suche (ist 2 x vorhanden):

code:
1:
$comment = htmlspecialchars($_POST['comment'], ENT_NOQUOTES);


Ersetze es mit (auch 2 Mal):

code:
1:
2:
3:
4:
5:
6:
7:
//$comment = htmlspecialchars($_POST['comment'], ENT_NOQUOTES);
    
         $comment=utf8_encode($comment);
     $comment=htmlspecialchars($comment);
     $umlaute = array("ä","ö","ü","Ä","Ö","Ü","ß");
  $doppelbuchstaben = array("ä","ö","ü","Ä","Ö","Ü","ss");
  $comment = str_replace($umlaute,$doppelbuchstaben,$comment);


suche weiter:

code:
1:
$popcomment=htmlspecialchars($pop['comment'],ENT_QUOTES);


Ersetze es mit:

code:
1:
2:
3:
4:
5:
6:
7:
//$popcomment=htmlspecialchars($pop['comment'],ENT_QUOTES);
   
        $comment=utf8_encode($comment);
     $comment=htmlspecialchars($comment);
     $umlaute = array("ä","ö","ü","Ä","Ö","Ü","ß");
  $doppelbuchstaben = array("ä","ö","ü","Ä","Ö","Ü","ss");
  $comment = str_replace($umlaute,$doppelbuchstaben,$comment);


suche weiter:

code:
1:
$message=addslashes(htmlspecialchars($message, ENT_NOQUOTES));


ersetze es mit:

code:
1:
2:
3:
4:
5:
6:
7:
//$message=addslashes(htmlspecialchars($message, ENT_NOQUOTES));
            
                 $message=utf8_encode($message);
     $message=htmlspecialchars($message);
     $umlaute = array("ä","ö","ü","Ä","Ö","Ü","ß");
  $doppelbuchstaben = array("ä","ö","ü","Ä","Ö","Ü","ss");
  $message = str_replace($umlaute,$doppelbuchstaben,$message);




LG
haumi



Geschrieben von schnofeli am 17.08.2016 um 09:00:

 

Hallo Haumi

Das kann ich auch gar nicht, weil von dem (öffne xy... und suche) gar nichts davon in der nachrichten.php vorhanden ist. Ich habe doch gar keine xy_shoutbox

Da steht dann lediglich
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
if($boardversion == "1.0.2"){
    	$message = $parse->doparse($row['message'],1,0,0,0);
		$message = str_replace("{imagefolder}", $us_3['substitute'],$message);
		#$message = utf8_encode($message);
    }else{
    	$message = utf8_decode($row['message']);
		//haumi
		$message=htmlspecialchars($message);
		$umlaute = array("ä","Ã?¶","ü","Ä","Ö","Ü","ß");
		$doppelbuchstaben = array("ä","ö","ü","Ä","Ö","Ü","ss");
		$message = str_replace($umlaute,$doppelbuchstaben,$message);
		//ende haumi
		
		$message = $parse->doparse($message,1,0,0,0);
		#$message = str_replace("{imagefolder}", $us_3['substitute'],$message);
		$message = utf8_encode($message);


Also hier noch mit dem Teil von Dir mit drin.



Geschrieben von haumi am 17.08.2016 um 13:31:

 

Was hast du denn für eine shoutbox?
Lege die php-Datei mal in den Anhang und sag mal welche Boardversion du hast.

LG
haumi



Geschrieben von schnofeli am 17.08.2016 um 14:37:

 

Das ist die Shoutbox V2 vom Hopfenschlodel. Diese ist aber nicht frei verfügbar und ich weiss nicht, ob ich dann einfach die php - Datei(en) hier rein stellen darf.

Aber wie schon einmal erwähnt, denke ich auch gar nicht, dass es an der Shoutbox liegt, denn wenn das Forum mit Charset = windows1252 läuft, dann funktioniert sie einwandfrei.

Dein Forum hier läuft auch mit diesem Charset. Von dem her denke ich, dass das die richtige Einstellung sein müsste und der Fehler daher woanders begraben sein müsste.

Kannst Du mir ev. die SQL - Variablen nennen, die Du eingestellt hast im phpMyAdmin? Ich vermute nämlich, dass es hiermit zu tun hat, denn in der Datenbank werden die geschriebenen Umlaute alle richtig gespeichert. Erst wenn diese wieder ausgelesen werden, dann stimmt es nicht mehr.

Ach ja, die Boardversion ist 2.3.6



Geschrieben von haumi am 17.08.2016 um 15:27:

 

Hi Schnofeli,
Wenn es die nicht frei verfügbare Version ist, dann lasse ich da selbstverständlich die Finger davon.
Dann sollst du aber mal bei Hopfenschlodel nachfragen.
Die haben die Box konzipiert und müssen somit in der Lage sein den Fehler auszumerzen.
Wenn alles korrekt angezeigt wird und nur die Box den Fehler ausweist muss es an der Box liegen!
Hier ist der Zeichensatz/Kollation der MySQL-Verbindung = utf8_general_ci.

Server: dd35016 via TCP/IP
Software: MySQL
Software-Version: 5.6.30-nmm1-log - (Ubuntu)
Protokoll-Version: 10
Server Zeichensatz: UTF-8 Unicode (utf8)

Ich weiß nicht ob es dir weiter hilft.

LG
haumi



Geschrieben von schnofeli am 17.08.2016 um 17:42:

 

Zitat:
Original von haumi
Wenn alles korrekt angezeigt wird und nur die Box den Fehler ausweist muss es an der Box liegen!

Die Umlaute werden nur dann korrekt angezeigt, wenn ich in den Sprachvariablen "LANG_GLOBAL_ENCODING:" vom WBB2.3.6 den Eintrag "windows-1252" durch "UTF-8 unicode" ersetze. Wenn dort wie im Standard "windows-1252" steht, dann sind keine Umlaute da.
Zitat:
Original von haumi
Hier ist der Zeichensatz/Kollation der MySQL-Verbindung = utf8_general_ci.

Server: dd35016 via TCP/IP
Software: MySQL
Software-Version: 5.6.30-nmm1-log - (Ubuntu)
Protokoll-Version: 10
Server Zeichensatz: UTF-8 Unicode (utf8)

Ich weiß nicht ob es dir weiter hilft.

LG
haumi

nur bedingt. Hast Du ev. etwas in den Variablen geändert? Resp. steht dort irgendetwas wie z.B. Latin1 oder sonst etwas anderes als UTF8?



Geschrieben von haumi am 17.08.2016 um 18:01:

 

An den Variablen habe ich nichts geändert und alles so übernommen wie es vorgegeben war.
Ich bin vor ca 2 Jahren umgezogen und hate keine derartigen Probleme.
Nur konnte ich auf die beschriebene Art und Weise einigen Boards (allen die gefragt hatten) helfen.
Und wie gesagt an Hopfenschlodels Sachen möchte ich nichts verändern, obwohl es sich dort auch realisieren ließe.

LG
hannes



Geschrieben von schnofeli am 20.08.2016 um 12:10:

 

Danke für Deine Bemühungen. st14



Geschrieben von ConnyMaus am 07.09.2016 um 07:12:

 

Hallo, das problem habe ich auch mit den Umlaute in der Shoutbox, ich habe die Devil shoutbox.
Ist erst der wir mit dem Forum umgezogen sind.

Muss dazu sagen, den umzug vom Forum auf den Server habe ich allein gemacht.
Stine hatte mir geholfen mit der SQL datenbank in ordnung zu bringen.

Aber Haumi, kannst du mir helfen wie ich die Umlaute ändern kann?

LG Conny



Geschrieben von haumi am 10.09.2016 um 16:50:

 

ist erledischt!

LG
haumi


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH