• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Umlaute bei PHPBB

Hallo

ich wollte eine eigene Seite in das PHPBB integrieren. Jedoch werden die Umlaute bei Inhalten aus meiner Datenbank nicht angezeigt. Das Charset ist richtig eingestellt auf UTF-8.

Ich bin echt am verzweifeln!

Hier der PHP Code meiner eigenen Seite
PHP:
/**
*
* @author Original Autor Benutzername [email protected] - http://meine-seite.de
* @author Anderer Autor Benutzername [email protected] - http://domain.de
*
* @package {PACKAGENAME}
* @version $Id$
* @copyright (c) 2007 Dein Gruppen Name
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
// Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// application/xhtml+xml not used because of IE
	
// Da wir weiter unten noch einen Avatar anzeigen lassen wollen,
// benötigen wir noch die dazu passende Funktion
// die in der Datein includes/functions_display.php vorhanden ist.
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);

// Session auslesen und Benutzer-Informationen laden
$user->session_begin();  // Session auslesen
$auth->acl($user->data); // Benutzer-Informationen laden
$user->setup('mods/meine_sprachdatei'); // Sprachvariablen aus eigener Sprach Datei laden

/*
* Nun folgt erst Dein PHP Code für die neue Seite, also:
* Variablen setzen, Datenbankabfragen, Einfügen und Entfernen von Einträgen usw...
*
* Dies ist nun ein sehr primitives Beispiel.
* Es soll nur veranschaulichen wie es funktioniert.
*
*/

include("database.php");

    $conn = mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PW);      /* verbindet zu MySQL an sich */
mysql_select_db($MYSQL_DB, $conn);     /* verbindet zu der gew?hlten Datenbank auf dem Server */


$abfrage = "SELECT * FROM phpbb_posts ORDER BY `post_time` DESC LIMIT 5";
   $ergebnis = mysql_query($abfrage);
   //Vergleich ob es Diesen Usernamen gibt

   while($row = mysql_fetch_assoc($ergebnis)){
       $newposts.=("<div class=\"widget-content\">
                  <h3>$row[post_subject]</h3>
                  <p>$row[post_text]</p>
               <div class=\"clearer\"></div>
              </div>
              <hr>");
   }
   
$template->assign_vars(array(
    'NEW_POSTS'    => $newposts,
));

// Seiten Titel, diese Sprach Variable sollte in der Sprach Datei,
// welche weiter oben genannt wurde, definiert sein.
page_header($user->lang['MEIN_TITEL']);

// Defniere nun den Dateinamen Deines Templates welches Du benutzen moechtest.
// Dies ist der Name von Deinem Template welches unter /styles/<style>/templates/ zu finden ist.
$template->set_filenames(array(
    'body' => 'portal.html',
));

// Script vervollständigen und Seite anzeigen lassen.
page_footer();
 
Werbung:
Code:
  if (false == setlocale(LC_ALL, "UTF8", "en_US.UTF-8"))
    {
        die("skip setlocale() failed\n");
    }

füge das mal ein ;)
 
Code:
  if (false == setlocale(LC_ALL, "UTF8", "en_US.UTF-8"))
    {
        die("skip setlocale() failed\n");
    }

füge das mal ein ;)

Danke für deine schnelle Antwort, hat leider nicht geklappt aber vllt habe ich es nur an der falschen Stelle eingesetzt. Ich habe jetzt das Charset auf charset=ISO-8859-1 geändert und jetzt funktioniert alles.

Sowas ist immer wieder toll, wenn man den ganzen Vormittag dran verzweifelt, dann schließlich einen Thread aufmacht und dann findet man die Lösung nach ein paar Minuten selber ;)

Aber wird es vllt andere Probleme geben mit diesem Charset?

Edit: Es funktioniert doch nicht mehr, nur wenn ich im PHP Code vorher ein echo Code drin habe. Sobald dieser draußen ist wird es im Template wieder nicht angezeigt.
 
Werbung:
setlocale dürfte meiner Meinung nach nichts damit zu tun haben, aber ich kenne mich mit phpBB überhaupt nicht aus.

Du könntest mal gucken, mit welchem Charset die normalen Seiten deines Forums ausgeliefert werden (im Firefox etwa im Kontextmenü der Seite unter "Page info") und in welchem Charset diese neue Seite standardmäßig ausgeliefert wird. Sind die gleich?

Du gibst außerdem für deine Datenbankverbindung kein Charset an. Das *könnte* einen Einfluss haben, ist schwer zu sagen. Führt das Forum vielleicht nach seiner normalen mysql_connect-Methode etwas wie mysql_set_charset aus?

(Und könntest du noch das Charset der Datenbanktabellen nachsehen?)
 
Die normalen Seiten des Forums und die neue Seite werden laut Firefox beide mit UTF-8 ausgeliefert.

Das Charset der Datenbanktabellen sind utf8_bin.
 
Die normalen Seiten des Forums und die neue Seite werden laut Firefox beide mit UTF-8 ausgeliefert.

Das Charset der Datenbanktabellen sind utf8_bin.

Dann ist mein "best guess" eine dieser beiden Zeilen hinter dem "mysql_connect":

PHP:
mysql_set_charset('utf8'); // mysql ab PHP5.2.3
mysql_query("SET NAMES `utf8`"); // veraltet
 
Werbung:
Zurück
Oben