---
title: "Uppdatera/ändra cookie?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/118325-uppdatera-ändra-cookie"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "wyndan"
published: "2004-12-19T12:56:53.000Z"
updated: "2004-12-21T20:16:17.000Z"
replies: 6
views: 434
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/118325-uppdatera-ändra-cookie"
---

# Uppdatera/ändra cookie?

## #1 — wyndan, 2004-12-19T12:56Z

Tjena!

Vill göra min hemsida på två språk så användare kan växla mellan svenska och engelska, och använda cookies som lagrar vad användaren har valt.

Problemet är att jag redan lagrar en cookie som kommer ihåg vilken css(färgtema) avändaren har valt... så kan man uppdatera cookien så den lagrar både färgtemat och språket?

Eller finns det ett annat smidigare/enklare sätt att låta användaren välja språk?

Scriptet som sätter färgtema-cookien ser ut så här: 
[styleswitcher.js](http://www.alistapart.com/d/alternate/styleswitcher.js)

/Andreas

Permalänk: https://www.webforum.nu/p/118325

## #2 — WiZzLeR, 2004-12-19T13:24Z

ja, cookien kan ha flera val i cookien. 

t.ex setcookie('lang', $\_GET\['lang'\], (time()+2592000), '/', '', 0);

där $\_GET\['lang'\] är kanske en eller sv. Sen kan du kolla mot cookien och om den är inställd på sv så väljer den en svensk språkfil och om det är en så väljer den en engelsk språkfil.

Permalänk: https://www.webforum.nu/p/1509064

## #3 — Pedda, 2004-12-19T16:08Z

En cookie kan bara ha ett värde

```php
setcookie("namn", "värde", "tid", "mapp", "domän", "säkerhet");
```

 

Så du får nog sätta två cookies, en för språk och en för tema.

Permalänk: https://www.webforum.nu/p/1509114

## #4 — Fuel, 2004-12-19T17:50Z

Du kan lägga in flera värden .. t.ex separera dom med en pipe och sen köra explode på cookien

```php
$sdata = $_GET['lang']."|".$_GET['style'];
setcookie('settings', $sdata, (time()+2592000), '/', '', 0);

// --------------------------------------------------------------

$prefs = explode("|", $_COOKIE['settings']);

echo $prefs[0]; // är då " sv " och 
echo $prefs[1]; // är t.ex " green "
```

Permalänk: https://www.webforum.nu/p/1509162

## #5 — Peeer, 2004-12-19T18:12Z

> **Fuel skrev:**
>
> Du kan lägga in flera värden .. t.ex separera dom med en pipe och sen köra explode på cookien

Det går, men varför krångla till det så!? Kör på två cookies istället, användaren kommer säkerligen inte klaga :) CSS-scriptet döper sin cookie till "style" så du kan väl döpa språkcookien till "language" eller något annat lämpligt.

Permalänk: https://www.webforum.nu/p/1509172

## #6 — wyndan, 2004-12-21T11:17Z

tack för hjälpen! funkar finfint.. fast min kod känns lite som av ett fulhack..

```php
<?php
$lang = $_GET['lang'];
if ($lang == "sv"){
	 		 setcookie('lang',"sv",(time()+2592000));
			 if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/main.php"){
			 		$href = "start.php";
					}
			 else if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/links.php"){
			 		$href = "lankar.php";
					}					
			 else if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/about_us.php"){
			 		$href = "om_oss.php";
					}
			 else if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/advertise.php"){
			 		$href = "annonsera.php";
					}
			 else if ($_SERVER['HTTP_REFERER'] == "http://www.funnygames.se/search.php"){
			 		$href = "sok.php";
					}
			 else{
			 		$href="start.php";
					}
}
```

 
å sen motsvarande för engelska..
borde väl gå å lösa på ett smidigare sett?

Permalänk: https://www.webforum.nu/p/1509837

## #7 — WiZzLeR, 2004-12-21T20:16Z

jag förstår inte riktigt din kod. Om adressfältet är <http://www.funnygames.se/main.php> så öppnas main.php med svensk text?

man kan göra något i den här stilen:

```php
// om ett värde för getten lang anges så skapas en cookie med värdet.
if ($_GET['lang']) {
    setcookie('lang', $_GET['lang'], (time()+2592000), '/', '', 0);
}

// om ett värde för cookien lang finns så sätts variablen $lang till det, annars är standard sv.
if ($_COOKIE['lang']) {
    $lang = $_COOKIE['lang'];
} else {
    $lang = "sv";
}

/* 
alla språkfiler finns i en mapp med ett namn t.ex lang_sv.php

om filen existerar så includas språkfilen annars säger sidan att filen saknas. 
*/

$langfile = "languages/lang_" . $lang . ".php";
if (file_exists($langfile)) {
    include $langfile;
} else {
    echo "language file missing!";
    exit;
}
```

i lang\_\<prefix\>.php så definerar man arrays etcetera.
t.ex 

```php
$_LANG['YES'] = "Ja";
$_LANG['NO'] ="No";
```

När den includeras så ersätts alla $\_LANG\['YES'\] och $\_LANG\['NO'\] på sidan. 

OBS! Det här fungerar bara på statisk text.

Permalänk: https://www.webforum.nu/p/1510086

---

Tråden på webben: https://www.webforum.nu/amne/php/118325-uppdatera-ändra-cookie
