---
title: "Sessioner i safari"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/143966-sessioner-i-safari"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "MickeA.com"
published: "2006-03-14T18:20:14.000Z"
updated: "2006-03-14T19:43:06.000Z"
replies: 7
views: 493
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/143966-sessioner-i-safari"
---

# Sessioner i safari

## #1 — MickeA.com, 2006-03-14T18:20Z

Tjena
Har gjort ett mycket enkelt phpscript som ändrar bakgrundfärg beroende på en sessions värde.
Första gången man kommer till sidan (sessionen finns inte) så är det en färg. Samtidigt får sessionen ett värde som gör att bakgrunden ändras.

Problemet jag nu stött på är att Safari behåller sessionen även fast man stänger webläsaren.
Det känns ju helt fel, 'får' det ens vara så? Medtanke på att sessioner används för att lagra information tempoärt genom flera sidor?

Allt funkar som det ska i både Netscape, IE och Firefox, men alltså inte i safari.

Min fråga är alltså, hur ska jag lösa det här?
Tack på förhand!

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

## #2 — tydal, 2006-03-14T18:31Z

Enligt specen är det så att om du inte talar om hur länge cookien ska leva så ska den tas bort "when the user's session ends".

Det du kan göra är att sätta en gräns, i sekunder:

ini_set("session.cookie_lifetime", 1200);

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

## #3 — MickeA.com, 2006-03-14T18:46Z

Tack för ett snabbt svar, men det funkar fortfarande i safari.
Har lagt detta nästan högst upp i min kod, efter ngra headers:

```
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
ini_set("session.cookie_lifetime", 1200);
?>
<?php
ob_start();
session_start();
// Kontroll för exekvering av undersidor:
if(isset($_GET['page'])){
	$page = $_GET['page'];
}else{
	// ÄNDRA VÄRDET AV DENNA VARIABEL FÖR ATT SÄTTA STARTSIDA \\
	$page = "hem.html";
}
if (file_exists($page . ".html")) {
	$fName = $page . ".html";
} else {
	$fName = "error404.html";
}
if(isset($_GET['page']) && $_GET['page'] == "reload_site"){
	unset($_SESSION['vCount']);
//	session_unset();
}
if(isset($_SESSION['vCount']) && $_SESSION['vCount'] == 1){
	// Bakgrund ska vara vit, visa rosa meny:
	$setBackground	= "#FFF";
	$setPicsPrefix	= "2";
	$setmenuLinkA	= "#000";
	$setmenuLinkH	= "#E00085";
}else{
	// Bakgrund ska vara rosa och menyn vit:
	$_SESSION['vCount'] = 1;
	$setBackground = "#E00085";
	$setPicsPrefix	= "1";
	$setmenuLinkA	= "#FFF";
	$setmenuLinkH	= "#000";
}
?>
<html>
<head>
<meta name="generator" content="Editplus">
<meta name="author" content="Micke Andersson 2006">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="Keywords" content="">
<meta name="Description" content="">
<link rel="stylesheet" href="css/style.css" type="text/css">
<!--
#######################################################################
# Skapad 2006-03-13 Av Micke Andersson ([url]http://www.MickeA.com[/url]) © 2006 #
# All kod, script & bilder och skyddas enligt lagen om upphovsrätt.   #
#######################################################################
-->
<title>Index - <?=$setBackground?></title>
<script language="javascript" type="text/javascript" src="css/menu.js"></script>
<style type="text/css">
/* CSS FÖR MENYN, DENNA MÅSTE LIGGA HÄR FÖR ATT DET SKA FUNGERA */
html, body
	{
	padding:			0px;
	background-color:		<?=$setBackground?>;
	text-align:			center;
	}
a.menuChoice:link, a.menuChoice:active, a.menuChoice:visited
	{
	text-decoration:			none;
	color:						#FFF; 
	font:						bold 12px verdana;
	}
a.menuChoice:hover
	{
	color:						black;
	}
a.menulink:link, a.menulink:active, a.menulink:visited
	{ 
	text-decoration:			none; 
	color:						<?=$setmenuLinkA?>; 
	font:						11px verdana; 
	margin:						0px; 
	padding:					0px; 
	}
a.menulink:hover
	{
	color:						<?=$setmenuLinkH?>;
	}
.menu
	{
	padding-left:				7px; 
	margin-bottom:				0px; 
	background-color:			transparent; 
	text-align:					left; 
	vertical-align:				top; 
	display:					none;
	border:						0px;
	}
</style>
</head>
<body>
<div id="container1">
	<div id="topCont"><a href="default.php?page=reload_site"><img src=="img/logga.jpg" alt="LOGOTYPE HÄR"></a></div>
	<div id="container2">
		<div id="menuCont">
		<?php
		require("menu.php");
		?>
		</div>
		<div id="mainCont"><iframe name="namn" src="<?=$fName?>" frameborder="0" scrolling="auto"></iframe></div>
	</div>
</div>
</body>
</html>
```

Ser någon fel i min kod, säg gärna till, är ingen klippa på php ;)
Tack!

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

## #4 — tydal, 2006-03-14T18:57Z

1200 sekunder är 20 minuter och du svarade inom 20 minuter, alltså kan du inte ha hunnit testa om det funkade :-)

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

## #5 — MickeA.com, 2006-03-14T19:01Z

aha, ok.
Läste mig nyss till på php.net att om jag anger värdet '0' innebär det "Until the browser is closed" vilket låter som något jag vill ha.

Ser phpkoden 'bra' ut i övrigt, ligger allt 'där det ska' ?

Tack!

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

## #6 — bassebhu, 2006-03-14T19:20Z

> **MickeA.com skrev:**
>
> aha, ok.
> Läste mig nyss till på php.net att om jag anger värdet '0' innebär det "Until the browser is closed" vilket låter som något jag vill ha.
> 
> Ser phpkoden 'bra' ut i övrigt, ligger allt 'där det ska' ?
> 
> Tack!

Tjaa, tar du bort det här så tjänar du 7 tecken kod ;) 

```
?>
<?php
```

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

## #7 — tydal, 2006-03-14T19:39Z

> **MickeA.com skrev:**
>
> Läste mig nyss till på php.net att om jag anger värdet '0' innebär det "Until the browser is closed" vilket låter som något jag vill ha.

Det var det du hade :-)

Specen säger "until the user's session ends" och det tolkar Internet Explorer, Firefox, Opera med flera som "tills man stänger webbläsaren" (och därför står det så på php.net). Men tydligen gör inte Safari det och då kan du i stället sätta en gräns.

0 innebär ju att det inte finns någon gräns, mer då än att specen säger att det innebär until the user's session ends...

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

## #8 — tydal, 2006-03-14T19:43Z

Förresten, jag skulle ta bort header-raderna i början där för att testa så det inte är den biten som ställer till det i Safari. Vill man veta om det är en viss faktor (session-cookien) som orsakar ett visst beteende (kvarstående session) så bör man ta bort alla andra faktorer för att se om beteendet behålls.

Så korta ner inledningen till:

\<?php
session_start();
// Kontroll för exekvering av undersidor:
// och sedan vidare med din befintliga kod.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/143966-sessioner-i-safari
