tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
1092
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sn4rk sn4rk ist offline Grünschnabel
    Registriert seit
    Jul 2007
    Beiträge
    4
    hi

    ich habe eine zweisprachige html website. die startpage linkt den user zu der jeweiligen sprachversion.

    nun wollte ich fragen ob es nicht möglich ist in beide links ein script einzufügen das einen cookie ablegt indem die jeweilige sprache bestimmt wird. und in die startseite ein script das den cookie ausliest und je nach auswertung weiterlinkt oder bei nicht bestehen des cookies auf der seite bleibt.
    geht das nur per javascript. wenn ja wie?

    danke schonmal im vorraus
     

  2. #2
    MeinerEiner_80 Tutorials.de Gastzugang
    Geht nicht nur in Javascript , sondern z.B auch in PHP und in vielen anderen Sprachen auch...
    In JS ungefähr so:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    <html>
     
    <head>
     
    <script type="text/javascript">
    function writeCookie () {
      var lang = navigator.language; //Browser Sprache auslesen
      document.cookie = 'lang='+lang;
    }
    </script>
    </head>
    <body>
     
    <a href='#' onclick="writeCookie()">klick</a>
    </body>
    </html>

    Auslesen funktioniert genauso,
    Code :
    1
    
    var a = document.cookie;

    *grüssle*
    MeinerEiner
     

  3. #3
    sn4rk sn4rk ist offline Grünschnabel
    Registriert seit
    Jul 2007
    Beiträge
    4
    danke für die schnelle antwort!

    HTML-Code:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Untitled Document</title>
    </head>
    
    <body onLoad="readCookie()">
    <script type="text/javascript">
    function readCookie () {
    	var a = document.cookie;
    	if ( a= 'lang1');
    	{location.href='site1.html'};
    	if ( a= 'lang2')
    	{location.href='site2.html'};
    }
    function writeCookie1 () {
      var lang = 'lang1';
      document.cookie = 'lang='+lang;
    }
    function writeCookie2 () {
      var lang = 'lang2';
      document.cookie = 'lang='+lang;
    }
    </script>
    <p><span><a href='#' onClick="writeCookie1()">lang2</a></span> - 
       <span><a href='#' onClick="writeCookie2()">lang2</a></span></p>
    </body>
    </html>
    also mein problem ist das die sprache vom user ausgewählt werden soll und nicht vom browser ausgelesen wird.
    und dabei sollte die variable im cookie auch im nachhinein noch verändert werden können wenn der user die andere sprache auswählt.
    was mach ich falsch?
    Geändert von sn4rk (12.07.07 um 14:29 Uhr)
     

  4. #4
    MeinerEiner_80 Tutorials.de Gastzugang
    Moin!
    Du schreibst zum einen:
    Code :
    1
    
    document.cookie = 'lang='+lang;
    Deine Prüfung lautet aber:
    Code :
    1
    2
    
    var a = document.cookie;
    if ( a= 'lang1');
    Korrekterweise sollte es da schon heißen:
    Code :
    1
    
    if ( a= 'lang=lang1');

    *grüssle*
    MeinerEiner
     

  5. #5
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    bei einem Vergleich sind zudem doppelte Anführungszeichen notwendig.
    Code :
    1
    
    if (a [COLOR="Red"]==[/COLOR] 'lang=lang1');
    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  6. #6
    sn4rk sn4rk ist offline Grünschnabel
    Registriert seit
    Jul 2007
    Beiträge
    4
    so nochmals danke
    habs jetzt endlich geschafft
    hier der korrekte code falls jemand das gleich problem hat.

    HTML-Code:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Untitled Document</title>
    </head>
    
    <body onLoad="readCookie()">
    <script type="text/javascript">
    function readCookie () {
    	var a = document.cookie;
    	if ( a == 'lang=lang1')
    		{window.location = "site1.html"}
    	else
    		{window.location = "site2.html"};
    }
    function writeCookie1 () {
      var a = new Date();
      a = new Date(a.getTime() + 30000000000);
      document.cookie = 'lang=lang1';
      expires='+a.toGMTString()+';
    }
    function writeCookie2 () {
      var a = new Date();
      a = new Date(a.getTime() + 30000000000);
      document.cookie = 'lang=lang2'; 
      expires='+a.toGMTString()+';
    }
    </script>
    <p><span><a href='site1.html' onClick="writeCookie1()">lang1</a></span> - 
       <span><a href='site2.html' onClick="writeCookie2()">lang2</a></span></p>
    </body>
    </html>
     

  7. #7
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Der Webbrowser sollte dir diese Information eigentlich auch im Header der Anfrage schicken (genau gesagt: im „Accept-Language“-Feld). Zudem solltest du auch die Präferenzangabe beachten.
     
    Markus Wulftange

  8. #8
    sn4rk sn4rk ist offline Grünschnabel
    Registriert seit
    Jul 2007
    Beiträge
    4
    ich habe immernoch ein problem mit der gültigkeit des cookies.
    die wird nämlich auf das ende der sitzung beschränkt und nicht etwas länger wie von mir beabsichtigt?

    wo liegt der fehler im code?
     

  9. #9
    Quaese Quaese ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Feb 2004
    Beiträge
    3.451
    Hi,

    versuch mal die Gültigkeitsdauer wie folgt festzulegen:
    Code :
    1
    
    document.cookie = "expires=" + a.toGMTString();
    Ciao
    Quaese
     
    Vielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
    ----
    Der "Fortsetzungsroman" auf www.leuteforum.de

    New kind to realize large scalable projects with jQuery: jQuery SDK

  10. #10
    tkdmatze tkdmatze ist offline Mitglied
    Registriert seit
    Apr 2007
    Beiträge
    13
    PHP-Code:
    function writeCookie (param) {
      var 
    = new Date(a.getTime() + 30000000000);
      
    document.cookie 'lang='+param;
      
    expires='+a.toGMTString()+';
    }

    </script>
    <p><span><a href='site1.html' onClick="writeCookie('lang1')">lang1</a></span> - 
       <span><a href='site2.html' onClick="writeCookie('lang2')">lang2</a></span></p>
    </body>
    </html> 
    ein bissel kürzer geht immer
     

  11. #11
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Wieso bringst du die Sprache nicht einfach im URL unter, etwa „http://example.net/de/…“?
     
    Markus Wulftange

Ähnliche Themen

  1. [JS] Cookies Lesen und Schreiben
    Von Sven Mintel im Forum Webmaster FAQ
    Antworten: 0
    Letzter Beitrag: 22.07.08, 01:23
  2. Cookies setzen und auslesen
    Von dark_ghost im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 17.02.06, 12:50
  3. Cookies auslesen bzw. zählen
    Von max im Forum PHP
    Antworten: 0
    Letzter Beitrag: 29.04.05, 10:00
  4. Auslesen von Cookies?
    Von mangaka im Forum PHP
    Antworten: 9
    Letzter Beitrag: 18.12.04, 15:04
  5. Cookies lesen, schreiben, ...
    Von Schkal im Forum ASP
    Antworten: 5
    Letzter Beitrag: 02.09.03, 11:08