Cache-Problem beim Sprachwechsel
-
- Beiträge: 86
- Registriert: Mi 20. Apr 2005, 16:16
- Kontaktdaten:
Cache-Problem beim Sprachwechsel
Hallo zusammen,
kann mir jemand helfen?!
Contenido bzw. der IE kann sich nicht merken in welcher sprache ich mich befinde. Wenn ich einen anderen Artikel aufrufe wird mir dieser nicht in meiner gewählten Sprache angezeigt sondern wahllos zwischen den Sprachen gewechselt.
Hat jemand einen Rat für mich?
Gruß,
Snuppel
kann mir jemand helfen?!
Contenido bzw. der IE kann sich nicht merken in welcher sprache ich mich befinde. Wenn ich einen anderen Artikel aufrufe wird mir dieser nicht in meiner gewählten Sprache angezeigt sondern wahllos zwischen den Sprachen gewechselt.
Hat jemand einen Rat für mich?
Gruß,
Snuppel
-
- Beiträge: 1082
- Registriert: Di 22. Jul 2003, 10:14
- Wohnort: Hessen
- Kontaktdaten:
-
- Beiträge: 86
- Registriert: Mi 20. Apr 2005, 16:16
- Kontaktdaten:
... ich hätte jetzt gesagt changelang, aber..., Kuckst Du hier:
hast Du etwa eine Idee...?
Vieleicht hilft diese info auch: Habe die neue 4.6.8er benutzt
Gruß, Snuppel
Code: Alles auswählen
<?php
//Konfiguration...
//Diese Zeilen konfigurieren das Modul...
//Aufbau: $picture["Sprach-ID"] = "PFAD zur Flagge";
$picture["1"] = "images/deutsch.gif";
$picture["2"] = "images/englisch.gif";
//$picture["3"] = "images/fr_flagge.jpg";
//Alt-Tag, das angezeigt werden soll. Analog Sprach-ID [idlang]
$alt["1"] = "Deutsch";
$alt["2"] = "Englisch";
//$alt["3"] = "Sprache 3";
//AB HIER NICHTS MEHR ÄNDERN...
$mydb = new DB_Contenido;
$sql = "SELECT ARTLANG.idlang, ARTLANG.online, CATLANG.visible FROM ".$cfg["tab"]["art_lang"]." ";
$sql = $sql. "AS ARTLANG, ".$cfg["tab"]["cat_lang"]." ";
$sql = $sql. "AS CATLANG WHERE ARTLANG.idart = $idart AND CATLANG.idcat = $idcat AND ARTLANG.idlang = CATLANG.idlang ORDER BY ARTLANG.idlang ASC";
$mydb ->query ($sql);
// echo $sql;
while ($mydb -> next_record())
{
while(list($lang_id,$picture_pfad) = each($picture))
{
if(strstr($REQUEST_URI,"changeview=edit") || $submit=="editcontent" || strstr($REQUEST_URI,"area=con_editcontent"))
{
if (($lang != ($mydb->f("idlang"))) and (($mydb->f("idlang")) == $lang_id))
{
echo "<a href=".$sess->url("front_content.php?client=$client&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart");
echo "><img src=".$picture_pfad." border='0' alt='".$alt[$mydb->f("idlang")]."'></a> ";
}
}
else
{
if (($lang != ($mydb->f("idlang"))) and (($mydb->f("idlang")) == $lang_id) and (($mydb->f("online")) == 1) and (($mydb->f("visible")) == 1))
{
echo "<a href=".$sess->url("front_content.php?&idcat=$idcat&changelang=".($mydb->f("idlang"))."&idart=$idart");
echo "><img src=".$picture_pfad." border='0' alt='".$alt[$mydb->f("idlang")]."'></a> ";
}
}
}
reset($picture);
}
?>
Vieleicht hilft diese info auch: Habe die neue 4.6.8er benutzt
Gruß, Snuppel
-
- Beiträge: 1082
- Registriert: Di 22. Jul 2003, 10:14
- Wohnort: Hessen
- Kontaktdaten:
-
- Beiträge: 86
- Registriert: Mi 20. Apr 2005, 16:16
- Kontaktdaten:
selbe Problem
Hallo ...
irgendwie scheint sich dieses Problem durch das Forum durchzuziehen.
Gibt es hierzu schon eine Lösung? Ich habe das gleiche Problem und habe bisher alle Module so abgeändert, dass immer changelang=<sprachid> mitgesendet wird.
hierbei ist natürlich das Problem, dass alle selbst eingegebenen Links nicht funktionieren. Es funktioniert ohne Probleme mit Firefox 1.5 aber mit keinem IE. Dieser wechselt willkürlich die Sprachen hin und her - selbst wenn ich lang=<sprachid> hinzugefügt habe.
Benutze die aktuelle Contentido version - muss ich noch Patches von irgendwo anders einspielen?
Danke
Greven
irgendwie scheint sich dieses Problem durch das Forum durchzuziehen.
Gibt es hierzu schon eine Lösung? Ich habe das gleiche Problem und habe bisher alle Module so abgeändert, dass immer changelang=<sprachid> mitgesendet wird.
hierbei ist natürlich das Problem, dass alle selbst eingegebenen Links nicht funktionieren. Es funktioniert ohne Probleme mit Firefox 1.5 aber mit keinem IE. Dieser wechselt willkürlich die Sprachen hin und her - selbst wenn ich lang=<sprachid> hinzugefügt habe.
Benutze die aktuelle Contentido version - muss ich noch Patches von irgendwo anders einspielen?
Danke
Greven
-
- Beiträge: 1082
- Registriert: Di 22. Jul 2003, 10:14
- Wohnort: Hessen
- Kontaktdaten:
Ähm, changelang braucht nur beim ersten Mal eine Spur länger, da die Sprache in der Session gespeichert wird (in der DB), das ist aber vernachlässigbar.
Dass der IE die Sprache nicht umschaltet, dürfte ein Irrtum sein: Der IE cached nur viel dauerhafter. Drücke mal nach Umstellung auf F5 und die Seite wird in der geänderten Sprache erscheinen...
Willkürlich ist es auch nicht: Hat man eine Seite in D einmal aufgerufen (=im Cache) wird sie bei nächstem Aufruf wieder in D ausgegeben. Wird z.B. mit E eine Seite aufgerufen, die man vorher nicht in D gesehen hat, ist sie gleich in E.
Gruß
HerrB
Dass der IE die Sprache nicht umschaltet, dürfte ein Irrtum sein: Der IE cached nur viel dauerhafter. Drücke mal nach Umstellung auf F5 und die Seite wird in der geänderten Sprache erscheinen...
Willkürlich ist es auch nicht: Hat man eine Seite in D einmal aufgerufen (=im Cache) wird sie bei nächstem Aufruf wieder in D ausgegeben. Wird z.B. mit E eine Seite aufgerufen, die man vorher nicht in D gesehen hat, ist sie gleich in E.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Caching scheint nicht der Grund zu sein
Hallo Forum,
vielen Dank für die Antworten.
Erst <STRG>+<F5> lädt die neue Seite. Gibt es hierfür eine Möglichkeit dem IE mitzuteilen die Seite zu aktualisieren ohne die Cache Funktion für beide Browser zu deaktivieren?!? Wie haben ANDERE User das Problem gelöst?
Weiterhin verstehe ich nicht, dass es bei mir _lokal_ ohne Probleme läuft. Hier kann auch der IE sauber zwischen den Sprachen hin und herschalten. Der einzige für mich erkennbare Unterschied ist aber das OS (Windows lokal und Linux online). Der Rest ist identisch.
Vielleicht habe ich etwas online falsch eingestellt?!? Aber da noch andere das Problem hatten würde eine Lösung uns vielleicht allen weiterhelfen.
Habt ihr vielleicht Hinweise was ich prüfen könnte?
Danke und frohe Ostern
Greven
vielen Dank für die Antworten.
Erst <STRG>+<F5> lädt die neue Seite. Gibt es hierfür eine Möglichkeit dem IE mitzuteilen die Seite zu aktualisieren ohne die Cache Funktion für beide Browser zu deaktivieren?!? Wie haben ANDERE User das Problem gelöst?
Weiterhin verstehe ich nicht, dass es bei mir _lokal_ ohne Probleme läuft. Hier kann auch der IE sauber zwischen den Sprachen hin und herschalten. Der einzige für mich erkennbare Unterschied ist aber das OS (Windows lokal und Linux online). Der Rest ist identisch.
Vielleicht habe ich etwas online falsch eingestellt?!? Aber da noch andere das Problem hatten würde eine Lösung uns vielleicht allen weiterhelfen.
Habt ihr vielleicht Hinweise was ich prüfen könnte?
Danke und frohe Ostern
Greven
Na ja, man könnte im Layout gleich Code für den IE vorsehen, der ein Cachen der Seite verhindert (ich denke, http://de.selfhtml.org gibt da Hinweise, sowas wie pragma no-cache oder eine cache-Zeit von aktuelles Datum -1 Sekunde).
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Lösung funktioniert - aber nicht optimal
Hallo HerrB,
vielen Dank für den Hinweis. Leider war meine Frage etwas anders:
gibt es hierfür eine Möglichkeit dem IE mitzuteilen die Seite zu aktualisieren ohne die Cache Funktion für beide Browser zu deaktivieren?!?
Nachdem kein anderer User gepostet hat, bin ich einfach die Referenzen durchgegangen. Überraschend ist, dass unter den Nutzern mit über 1000 Seiten nur einer einen Sprachwechsel anbietet und dieser verwendet einfach zwei Verzeichnisse (de/ und en/).
Bei den Usern mit über 500 Seiten war es etwas erfolgreicher.
Einer hat den Sprachwechsel implementiert und konnte anscheinend auf das Caching verzichten...
Ein weiterer übermittelt immer changelang=<id> bei jedem Link.
Bei den Usern zwischen 100 und 500 wird dann lustig.
Einer schickt die ganze Seite einfach auf ein automatisches Übersetzungstool.
Bei einem anderen gibt es zwar "englisch" aber keinen Inhalt
Ein dritter verwendet einfach keinen Cache...
Andere Meldungen waren:
"Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.
* Dieses Problem kann manchmal auftreten, wenn Cookies deaktiviert
oder abgelehnt werden."
Fazit:
Contenido ist derzeit nicht in der Lage mehrsprachigkeit zu realisieren, wenn
a) Cookies deaktiviert sind oder
b) im IE der Cache nicht deaktiviert ist oder
c) nicht auf den Trick changelang=<id> zurückgegriffen wird.
Habe ich etwas übersehen?
Wie haben ANDERE User das Problem gelöst, die nicht bereit sind den Cache zu deaktivieren oder dem Endanwender zu erklären, wie er bei jedem Link immer brav changelang=<id> ergänzt?
Danke und frohe Ostern
Greven
* Gibt es eine Möglichkeit die Session ID als Fallback in der URL zu übergeben?
vielen Dank für den Hinweis. Leider war meine Frage etwas anders:
gibt es hierfür eine Möglichkeit dem IE mitzuteilen die Seite zu aktualisieren ohne die Cache Funktion für beide Browser zu deaktivieren?!?
Nachdem kein anderer User gepostet hat, bin ich einfach die Referenzen durchgegangen. Überraschend ist, dass unter den Nutzern mit über 1000 Seiten nur einer einen Sprachwechsel anbietet und dieser verwendet einfach zwei Verzeichnisse (de/ und en/).
Bei den Usern mit über 500 Seiten war es etwas erfolgreicher.
Einer hat den Sprachwechsel implementiert und konnte anscheinend auf das Caching verzichten...
Ein weiterer übermittelt immer changelang=<id> bei jedem Link.
Bei den Usern zwischen 100 und 500 wird dann lustig.
Einer schickt die ganze Seite einfach auf ein automatisches Übersetzungstool.
Bei einem anderen gibt es zwar "englisch" aber keinen Inhalt
Ein dritter verwendet einfach keinen Cache...
Andere Meldungen waren:
"Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.
* Dieses Problem kann manchmal auftreten, wenn Cookies deaktiviert
oder abgelehnt werden."
Fazit:
Contenido ist derzeit nicht in der Lage mehrsprachigkeit zu realisieren, wenn
a) Cookies deaktiviert sind oder
b) im IE der Cache nicht deaktiviert ist oder
c) nicht auf den Trick changelang=<id> zurückgegriffen wird.
Habe ich etwas übersehen?
Wie haben ANDERE User das Problem gelöst, die nicht bereit sind den Cache zu deaktivieren oder dem Endanwender zu erklären, wie er bei jedem Link immer brav changelang=<id> ergänzt?
Danke und frohe Ostern
Greven
* Gibt es eine Möglichkeit die Session ID als Fallback in der URL zu übergeben?
naja die ganz billige lösung wäre am anfang der front_content.php abzufragen ob $lang in der url übergeben wurde und dann einfach $changelang = $lang; zu setzen. einen versuch ist es wert. was anderes mache ich mit meiner modRewrite engine auch nciht. und die funktioniert auch im IE mit deaktivierten cookies
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Ich würde steses Vorschlag mal ausprobieren, ich will nicht ausschließen, dass es da noch ein Problem gibt.
Zu a)
Sind Cookies deaktiviert, wird die Session-ID in der URL mitgegeben (entsprechend müssen die Navigations-Module gestaltet sein) - ob das auch so mit Links innerhalb von CMS_HTML-Elementen funktioniert, weiss ich gerade nicht.
Zu b)
Das ist ein IE-Problem, was soll Contenido daran ändern? Ich gebe aber zu, dass es evtl. noch ein Problem direkt nach der Sprachumstellung geben kann (hatte etwas seltsame Effekte direkt nach der Umschaltung).
Die Verwendung unterschiedlicher Verzeichnisse für unterschiedliche Sprachen sieht auf den ersten Blick gut aus, da auch hier der IE von unterschiedlichen Seiten ausgeht. Jedoch wird es dann vermutlich mit Dateiuploads schwieriger.
Dazu auch c)
Das ist eine Lösung, aber vermutlich löst es das nur, weil sich die URL damit unterscheidet (und der IE von einer neuen Seite ausgeht).
Den IE-Cache gänzlich zu umgehen (über Code im HTML), halte ich nach wie vor für eine Alternative, da heutzutage der Geschwindigkeitsvorteil vernachlässigbar ist und sich die interessanten Seiten sowieso regelmäßig ändern.
Gruß
HerrB
Generell ist die Aussage nicht korrekt.Contenido ist derzeit nicht in der Lage mehrsprachigkeit zu realisieren, wenn
a) Cookies deaktiviert sind oder
b) im IE der Cache nicht deaktiviert ist oder
c) nicht auf den Trick changelang=<id> zurückgegriffen wird.
Zu a)
Sind Cookies deaktiviert, wird die Session-ID in der URL mitgegeben (entsprechend müssen die Navigations-Module gestaltet sein) - ob das auch so mit Links innerhalb von CMS_HTML-Elementen funktioniert, weiss ich gerade nicht.
Zu b)
Das ist ein IE-Problem, was soll Contenido daran ändern? Ich gebe aber zu, dass es evtl. noch ein Problem direkt nach der Sprachumstellung geben kann (hatte etwas seltsame Effekte direkt nach der Umschaltung).
Die Verwendung unterschiedlicher Verzeichnisse für unterschiedliche Sprachen sieht auf den ersten Blick gut aus, da auch hier der IE von unterschiedlichen Seiten ausgeht. Jedoch wird es dann vermutlich mit Dateiuploads schwieriger.
Dazu auch c)
Das ist eine Lösung, aber vermutlich löst es das nur, weil sich die URL damit unterscheidet (und der IE von einer neuen Seite ausgeht).
Den IE-Cache gänzlich zu umgehen (über Code im HTML), halte ich nach wie vor für eine Alternative, da heutzutage der Geschwindigkeitsvorteil vernachlässigbar ist und sich die interessanten Seiten sowieso regelmäßig ändern.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
krise! sprachwechsel!
Hallo,
hab grad eine Site online gestellt, und was lokal funktioniert geht nicht online, nämlich der Sprachwechsel. Ja, Leute, ich hab schon alles dazu gelesen
Ich brauch jetzt nur grad eine schnelle, unaufwändige Lösung und möchte die Links im Navigationsmodul entsprechend anpassen.
Das sieht momentan so aus:
Wie krieg ich das jetzt so hin, dass die aktuelle Sprache immer im Link mit übergeben wird?
Zu sehen hier: www.emc.biz
Viele Grüße,
Ayshe
P.S.: Caching ist sorgfältig deaktiviert, die Sprache wird aber auch im FF nicht korrekt übergeben, heißt: der Browser "springt" auf Deutsch zurück.
hab grad eine Site online gestellt, und was lokal funktioniert geht nicht online, nämlich der Sprachwechsel. Ja, Leute, ich hab schon alles dazu gelesen

Ich brauch jetzt nur grad eine schnelle, unaufwändige Lösung und möchte die Links im Navigationsmodul entsprechend anpassen.
Das sieht momentan so aus:
Code: Alles auswählen
/* 1. Navigation level */
if (checkCatPermission($data['idcatlang'],$data['public'])) {
$tpl->reset();
$tpl->set('d', 'NAME', $data['name']);
$tpl->set('d', 'TARGET', $data['target']);
$tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat']));
$tpl->next();
if ($idcat == $data['idcat']) {
$tpl->generate('templates/navfirst_on.html');
}elseif(is_array($data['sub'])){
$tpl->generate('templates/navfirst_open.html');
} else {
$tpl->generate('templates/navfirst_off.html');
}
} // end if
} // end foreach
Zu sehen hier: www.emc.biz
Viele Grüße,
Ayshe
P.S.: Caching ist sorgfältig deaktiviert, die Sprache wird aber auch im FF nicht korrekt übergeben, heißt: der Browser "springt" auf Deutsch zurück.
Re: krise! sprachwechsel!
indem du die lang-Variable immer mitlieferst... das funktioniert zumindest bei einer meiner Seiten. Nach dem Überfliegen dieses Threads könnte allerdings auch die $changelang vonnöten sein... mhm...#ayshe hat geschrieben:Wie krieg ich das jetzt so hin, dass die aktuelle Sprache immer im Link mit übergeben wird?Code: Alles auswählen
/* 1. Navigation level */ if (checkCatPermission($data['idcatlang'],$data['public'])) { $tpl->reset(); $tpl->set('d', 'NAME', $data['name']); $tpl->set('d', 'TARGET', $data['target']); $tpl->set('d', 'HREF', $sess->url('front_content.php?idcat='.$data['idcat'].'&lang='.$lang)); $tpl->next(); if ($idcat == $data['idcat']) { $tpl->generate('templates/navfirst_on.html'); }elseif(is_array($data['sub'])){ $tpl->generate('templates/navfirst_open.html'); } else { $tpl->generate('templates/navfirst_off.html'); } } // end if } // end foreach
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)