cookies schreiben/auslesen

sn4rk

Grünschnabel
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
 
Geht nicht nur in Javascript , sondern z.B auch in PHP und in vielen anderen Sprachen auch...
In JS ungefähr so:
Code:
<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:
var a = document.cookie;

*grüssle*
MeinerEiner
 
danke für die schnelle antwort!

HTML:
<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?
 
Zuletzt bearbeitet:
Moin!
Du schreibst zum einen:
Code:
document.cookie = 'lang='+lang;
Deine Prüfung lautet aber:
Code:
var a = document.cookie;
if ( a= 'lang1');
Korrekterweise sollte es da schon heißen:
Code:
if ( a= 'lang=lang1');

*grüssle*
MeinerEiner
 
Hi,

bei einem Vergleich sind zudem doppelte Anführungszeichen notwendig.
Code:
if (a == 'lang=lang1');
Ciao
Quaese
 
so nochmals danke
habs jetzt endlich geschafft :)
hier der korrekte code falls jemand das gleich problem hat.

HTML:
<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>
 
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? :(
 
Hi,

versuch mal die Gültigkeitsdauer wie folgt festzulegen:
Code:
document.cookie = "expires=" + a.toGMTString();
Ciao
Quaese
 
PHP:
function writeCookie (param) {
  var a = 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
 

Neue Beiträge

Zurück