Hallo ,
Ich möchte meine Seite zweisprachig gestalten und dafür ein cookie setzen um zu wissen in welcher Sprache die Seite angezeigt werden soll.
Hier ist erstmal das Script was ich geschrieben habe :
<?php if( !isset($language) )<br /> $language = 1;
if( $language == 2 ) // english
{
setcookie("English", "1", time()+7200);
echo("<meta http-equiv='\"refresh\"' content='\"5;' url='http://127.0.0.1/seite/index.php\"'>");
}
else
{
setcookie("English", "", time()+7200);
echo("");
}
include( $language == 2 ? "header\_en.html" : "header.html" );
echo("");
echo(" ");
if( $language == 2 )
echo("Cookies have been set");
else
echo("Cookies wurden gesetzt");
echo(" ");
if( $language == 2 )
echo("You are now being redirected to the main site");
else
echo("Sie werden in wenigen Sekunden zurückgeleitet");
include("footer.html");
?\>
In den Navigationsleisten ist es dann mit links auf lang.php?language=1 für Deutsch und lang.php?language=2 für Englisch eingebunden.
Das Problem ist das es beim ersten mal (oder manchmal auch so anscheinend) nicht funktioniert. Ich klicke auf den English Link dann soll ich in 5 sekunden redirected werden aber dann kommt wieder die Deutsche Version (in index.php frage ich das Cookie ab mit $HTTP_COOKIE_VARS), danach funktioniert das Umschalten dann aber.
Ist an dem Code irgendetwas falsch oder wie kann ich sicherstellen daß es richtig funktioniert ?
Hai, moin, (hab ich Dich jetzt zweimal begrüßt, oder heißt Du so?)
wie ein Cookie funktioniert:
auf Seite a wird (mit Deinem Script) ein Cookie auf dem Rechner installiert. Wenn vom Browser aus jetzt die Seite b aufgerufen wird, wird der Inhalt des Cookies mit übertragen und der Server kann mit den dort enthaltenen Daten arbeiten - nun wird ein redirekt aber gar nicht vom Browser ausgelöst, sondern vom Server, der damit die Cookie-Daten gar nicht erhalten hat…
Du rufst dann zwar den englischen Header auf überprüfst aber in der index den Cookie-Inhalt (den der Server ja noch nicht bekommen hat…) - uuund flupp! - Du bist wieder im deutschen Bereich…
Ist Dir klar, warum’s zickt? Wenn nicht, frag nochmal
Gruß
Sibylle
Hi Sybille,
Hm also sollte es gehen wenn ich anstatt dem redirect einen normalen link auf die Hauptseite mache ? Oder wie kann man das Problem am besten umgehen , so daß man wieder auf die Hauptseite zurückgeleitet wird ?
ps. mein name hier ist moin , was besseres kam mir damals beim Registrieren nicht in den Sinn 
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Na, dann: Hai, moin *g*,
Hm also sollte es gehen wenn ich anstatt dem redirect einen
normalen link auf die Hauptseite mache ? Oder wie kann man das
Problem am besten umgehen , so daß man wieder auf die
Hauptseite zurückgeleitet wird ?
Du könntest die Info im redirekt mit angeben:
„“
und dann mit $_get[‚language‘] auslesen
also so ala
if (isset($_cookie[‚English‘]))
benutz, was im Cookie steht
else
kuck, was in $_get[‚language‘] steht und benutz das
Gruß
Sibylle