PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abhängige Versandart - Umlaut-Problem



Gasman
30.03.2011, 13:45
Servus,

ich hab bei mir in einem Test-XTC-Shop das "abhhängige Versandart"-Modul installiert. Da lief alles problemlos - wunderbar.
Im Live-System dann gab es leider Probleme mit den Umlauten. Mit meinen eingeschränkten Fähigkeiten konnte ich das Problem zumindest soweit eingrenzen, als dass ich weiß, dass das ganze durch die geänderte "application_top.php" in dem includes-Ordner verursacht wird.

Vom Support wurde mir schon ein wenig (oder auch mehr ;-) ) weiter geholfen.
Der Tip: Die Zeichenkodierung im Browser mal umzustellen.
Das Ergebnis: Die Umlaute werden korrekt angezeigt.

Falls die Umlaute korrekt angezeigt würden, wurde mir geraten, solle ich die Dateien in der richtigen Codierung abspeichern und erneut hochladen. Das hab ich sowohl einmal nur mit der application_top versucht, als auch mit allen geänderten Dateien. Aber bei beiden Varianten bekomme ich folgende Fehlermeldung:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /.../.../xtc30/includes/application_top.php:1) in /.../.../xtc30/includes/application_top.php on line 285

Nun weiß ich leider nicht mehr weiter. Hat jemand eine Idee?
Alles funktioniert - bis auf die Umlaute :(

Danke im Voraus,

Gruß

easy
30.03.2011, 13:53
Hi,

meinst du das "Artikelabhhängige Versandarten" Modul?? ich nehme an ja.

Was du allerdings mit der application_top gemacht hast, kann ich nicht ganz nachvollziehen?? in welcher Codierung hast du diese abgespeichert und hochgeladen?? und welche anderen geänderten Dateien??

Gasman
30.03.2011, 14:06
Ähm, ja genau die artikelabhängige Versandart. Ups ;)

Ich hab nichts mit der application_top gemacht. Nur lediglich rausgefunden, dass sobald die hochgeladen ist, die Umlaute nicht mehr funktionieren.

Die Datei Codierung hab ich auf Ratschlag vom Support dann auf UTF-8, west-europäisch iso-8859-1 geändert. Aber dann wird mir eben diese Zeile angezeigt.

Wenn man lediglich die Anzeige-Codierung des Browsers umstellt, funktionieren die Umlaute aber.

Sumsebum
30.03.2011, 14:14
Die Datei Codierung hab ich auf Ratschlag vom Support dann auf UTF-8, west-europäisch iso-8859-1 ...

Der Support hat Dir sicher gesagt, das eine oder andere zu nehmen. Nicht beides. Also nochmal zu prüfen:

1. welche Dateien wurden geändert, weil die Änderung der Codierung betrifft nur DIESE Dateien
2. Schauen in welcher Codierung der Shop läuft
3. Dateien eintsprechend codieren
4. für Dein "headers already sent" Problem schaust Du mal in den geänderten Dateien, ob sich dort nicht irgendwo ein Leerzeichenv or ein <?php geschlichen hat, oder ähnliches.

LG

Der Support

easy
30.03.2011, 14:14
Grundsätzlich solltest Du wegen einem Modul mal nicht die ganze Codierung auf UTF-8 ändern. Wer so etwas als Support Ratschlag (schwer zu glauben) rausgibt sollte besser Fritten verkaufen. Die application-top and alle sonstigen in diesem Zusammenhang geänderten Dateien wieder in den Urzustand versetzen und hochladen.

Anschließend poste mal die (ich nehme an 2 Dateien) des Versandmoduls hier

Sumsebum
30.03.2011, 14:27
Grundsätzlich solltest Du wegen einem Modul mal nicht die ganze Codierung auf UTF-8 ändern. Wer so etwas als Support Ratschlag (schwer zu glauben) rausgibt sollte besser Fritten verkaufen. Die application-top and alle sonstigen in diesem Zusammenhang geänderten Dateien wieder in den Urzustand versetzen und hochladen.

Anschließend poste mal die (ich nehme an 2 Dateien) des Versandmoduls hier

Hat der Support auch nicht geraten, er sollte lediglich die Codierung der entsprechenden Dateien ändern.

easy
30.03.2011, 14:42
Hat der Support auch nicht geraten, er sollte lediglich die Codierung der entsprechenden Dateien ändern.

Sag ich ja. "Schwer zu glauben" :-)

Gasman
30.03.2011, 15:12
Entschuldigt bitte, mein Fehler wenn ich mich falsch ausgedrückt hab. Wollte hier auf keinen Fall den Support ins falsche Licht rücken. Er hat mich ja eh schon weiter gebracht :)

Hm... also, die Fehlermeldung bekomme ich nur wenn ich die application_top auf UTF-8 umkodieren, falls das weiterhilft. In ISO-8859-1 kann ich umkodieren wie ich will. Da bekomm ich keine Fehlermeldung, aber die Umlaute sind auch nicht weg.

Tut mir leid, ich bin nicht wirkilch PHP versiert :-/
Wie find ich denn raus welche Kodierung mein Shop hat?

easy
30.03.2011, 15:22
Die application_top wird beim XTC nicht auf utf-8 geändert. Wenn dann die german.php. Um rauszufinden welche Codierung du hast Quelltext anschauen. In den ersten 3-4 Zeiten steht der charset, normalerweise iso-8859-1.

Als nächstes schaust du in der sprachdatei des Moduls wie die Umlaute geschieben sind: ü oder &uuml; (usw.)
Und als letztes teilst du uns evtl. mit welche Probleme es mit den Umlauten gibt

Gasman
30.03.2011, 15:28
charset=latin1_german2_ci

Die Umlaute, in Wörtern, die aus der Datenbank gezogen werden (z.B. Kunden-Adresse, Artikelname, usw.) werden nicht dargestellt. Also ä,ü,ß, usw. nur mit einem □ ersetzt.


edit:
--------------------------
Achja.. in der application_top muss man ja folgendes machen:

require_once(DIR_WS_FUNCTIONS.'database.php');
// require_once (DIR_FS_INC.'xtc_db_connect.inc.php');
// require_once (DIR_FS_INC.'xtc_db_close.inc.php');
// require_once (DIR_FS_INC.'xtc_db_error.inc.php');
// require_once (DIR_FS_INC.'xtc_db_perform.inc.php');
// require_once (DIR_FS_INC.'xtc_db_query.inc.php');
// require_once (DIR_FS_INC.'xtc_db_queryCached.inc.php');
// require_once (DIR_FS_INC.'xtc_db_fetch_array.inc.php');
// require_once (DIR_FS_INC.'xtc_db_num_rows.inc.php');
// require_once (DIR_FS_INC.'xtc_db_data_seek.inc.php');
// require_once (DIR_FS_INC.'xtc_db_insert_id.inc.php');
// require_once (DIR_FS_INC.'xtc_db_free_result.inc.php');
// require_once (DIR_FS_INC.'xtc_db_fetch_fields.inc.php');
// require_once (DIR_FS_INC.'xtc_db_output.inc.php');
// require_once (DIR_FS_INC.'xtc_db_input.inc.php');

Also alle anderen Verweise auskommentieren, der oberste kommt dazu. Kann es sein, dass die database.php dan der Ursprung allen Übels ist?




edit2:
--------------
Achja in der Sprachdatei sind die Umlaute ersetzt. ö z.B. mit &ouml; usw.

easy
30.03.2011, 15:34
Bei allem Respekt!

Aber: charset=latin1_german2_ci ist die Kollation der Datenbank

Quelltext = Homepage aufrufen -> rechte Maustaste -> Seitenquelltext anzeigen

Gasman
30.03.2011, 15:59
Hm..^^ Vielleicht bin ich ja etwas hohl...

Hab schon den Seitenquelltext aufgerufen gehabt. Und da steht:

<meta http-equiv="Content-Type" content="text/html; charset=latin1_german2_ci" />
<meta http-equiv="Content-Style-Type" content="text/css" />

Mehr find ich nich :-/

easy
30.03.2011, 16:12
Hm..^^ Vielleicht bin ich ja etwas hohl...

Hab schon den Seitenquelltext aufgerufen gehabt. Und da steht:

<meta http-equiv="Content-Type" content="text/html; charset=latin1_german2_ci" />
<meta http-equiv="Content-Style-Type" content="text/css" />

Mehr find ich nich :-/

Na Servus, wer schreibt denn sowas da rein.

das muss da stehen:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<meta http-equiv="Content-Style-Type" content="text/css" />


zu ändern in:

includes/header.php

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $_SESSION['language_charset']; ?>" />
<meta http-equiv="Content-Style-Type" content="text/css" />

Gasman
30.03.2011, 16:19
Also die letzten zwei Zeilen stehen in meiner header.php genau so drin. Meinst du nun, dass ich die Variable einfach ersetzen soll?? :o

berny
30.03.2011, 16:31
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /.../.../xtc30/includes/application_top.php:1) in /.../.../xtc30/includes/application_top.php on line 285

Also, das heißt ja soviel, dass in der application_top.php ein output gestartet werden will, der aber nicht kann, weil in der selben Datei schon ein header gesendet wurde.
Entweder hast du hier eine Fehlermeldung oder ein echo oder ähnliches, was produziert wird, aber nicht sollte.
ich vermute mal, dass die Database.php einen output generiert.

auf Zeile 285 wird die session gestartet, diese sollte eigentlich vor jedem output-header gestartet werden, steht aber eben nach dem include der database.php
ergo vermute ich mal die database.php als Grund für die ganze Geschichte...

Ich würde das als alles erste mal checken, bevor du dich um die Codierung kümmerst.

Gasman
30.03.2011, 16:39
Ich versteh nur nich warum. Hab ja ein Abbild von dem System auf einem anderne Server. Kanns denn da sein, dass es an der Datei liegt, die aber in beiden System die gleiche ist?
In dem anderne System funktionierts ja. Daher hätt ich was globales wie Kodierung eher für wahrscheinlich gehalten.

Problem bei der Vermutung ist nur: Ich hab keine Ahnung, de facto kann ich leider auch nix in der application_top.php nach outputs oder echos checken. Ich guck da rein und versteh nur Bahnhof. Mit meinem HTML/CSS komm ich da leider nicht weit.^^

berny
30.03.2011, 16:53
Keine Ahnung, weiß ja nicht, was da alles drinnen steht.
Und ja, es könnte sein, dass ein Umzug sowas produziert, kommt auf die Fehlermeldungbehandlung an.

Beispiel: Fehlermeldungen werden im alten System unterdrückt = kein output = kein Problem
Im neuen System werden die Fehlermeldungen ausgegeben = output bei Fehler = Problem

Es könnten auch viele andere Faktoren hier eine Rolle spielen, dazu müßte man aber die Inhalte kennen...


output started at /.../.../xtc30/includes/application_top.php:1

Gasman
31.03.2011, 07:26
Ich komm nich weiter...

easy
31.03.2011, 07:35
Jo, wir auch nicht.

Wenn Du willst schick mir ne PM oder Skype mich an ich kanns mir kurz anschauen. Kostenlos.

berny
31.03.2011, 12:35
Jo, wir auch nicht.

Wenn Du willst schick mir ne PM oder Skype mich an ich kanns mir kurz anschauen. Kostenlos.

Mit Respekt, aber ich würde jemanden, den ich nicht kenne und erst seit ein Tag hier angemeldet ist, meine Zugangsdaten nicht einfach so schicken...

Sumsebum
31.03.2011, 12:48
berny, mach ma langsam! easy ist noch aus den Anfängen der ShopCommunity Zeit, Rolf kennt Ihn und ich auch ...

Von daher immer langsam mit den Moderatorpferden ...

easy
31.03.2011, 12:48
Hat jemand was von Zugangsdaten gesagt??

berny
31.03.2011, 14:30
Ich kenne ihn nicht, deshalb mein Statement.
Und es war ja nur ein Hinweis, nicht mehr und nicht weniger, kann ja jeder damit umgehen, wie er will.

HarryBoo
31.03.2011, 22:19
Also ich kenne "easy" und ich freue mich ihn bei uns zu sehen :)

Dennoch mein Ratschlag an alle: Zugangsdaten zu einem Shop nicht leichtfertig herausgeben!

Easy´s Angebot bezog sich aber nur auf die Domain des Fragestellers und das ist doch immer das Problem, man muss sich das Problem doch mal live anschauen können um helfen zu können.

Also haltet mal alle den Ball flach und seid nett zu einander :)