---
title: "PHP - SESSION"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/184183-php-session"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "webb"
published: "2010-07-26T22:16:18.000Z"
updated: "2010-07-27T14:22:09.000Z"
replies: 5
views: 546
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/184183-php-session"
---

# PHP - SESSION

## #1 — webb, 2010-07-26T22:16Z

Hej,

Jag har ett problem med SESSION för en enkel varukorg, summan ($\_SESSION\['sum'\]) ökar varje gången jag sänder formulären med nytt tal:

if(isset($\_REQUEST\['submitted'\])) {	//  form är sänd		
$summa = $\_SESSION\['pris_antal'\];	// Pris \* antal	
if (isset($\_SESSION\['sum'\]))   {			
$\_SESSION\['sum'\] = $\_SESSION\['sum'\] + $summa;
echo $\_SESSION\['sum'\];	
}else {
 $\_SESSION\['sum'\] = $summa;	
}

Men när jag nollställer $\_SESSION\['sum'\] så blir $\_SESSION\['sum'\] = $summa oavsett hur många gånger jag sänder formulären:

if(isset($\_REQUEST\["rensa"\])) {		
unset($\_SESSION\["sum"\]);				
}
	 			 
Är det någon SESSION-expert som kan hjälpa till?

Tack i för hand!
Webb

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

## #2 — GunnarD, 2010-07-27T07:56Z

Inte så konstigt eftersom du i koden säger att om inte "sum" finns (isset()) så sätt den lika med $summa.

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

## #3 — webb, 2010-07-27T08:14Z

Tack för svaret,

För första gången om inte "sum" finns (isset())så sätt den lika med $summa som har ett initierat tal. Sedan när jag skickar formulären för andra gången så är "sum" lika med $summa, då bör satsen if (isset($\_SESSION\['sum'\])) gälla!

Mvh
Webb

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

## #4 — GunnarD, 2010-07-27T09:02Z

Japp, och där lägger du på $summa igen.

Så sum kommer alltid att vara minst lika med $summa.

Logiken i din kod ser ut så här:

```
om sum finns
  sum=sum+$summa
annars
  sum=$summa
```

Denna kod kan du i princip ersätta med:

```
sum=sum+$summa
```

Vilket ger samma resultat i detta fallet, förutsatt att du inte har annat i din if sats..

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

## #5 — fiddler, 2010-07-27T09:06Z

Var sätter du $\_SESSION\['pris_antal'\] någonstans? Har den något värde?

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

## #6 — webb, 2010-07-27T14:22Z

Jag ersatte koden med sum=sum+$summa, men det är samma problem när jag nollställer $\_SESSION\['sum'\] så blir $\_SESSION\['sum'\] = $summa. Problem uppstår när jag nollställer  $\_SESSION\['sum'\].
if(isset($\_REQUEST\["rensa"\])) {		
unset($\_SESSION\["sum"\]);				
} 
$\_SESSION\['pris_antal'\] kommer från:
$\_SESSION\['pris_antal'\] = $\_REQUEST\['storlek_pris'\];
\<script type="text/javascript"\>
function calcprice(){
var size = document.getElementById('storlek').value;
var antal = document.getElementById('antal').value;
document.storlek_pris.pris.value = size \* antal;
}
\</script\>
\<form id="storlek_pris" name="storlek_pris" method="post" action="\<?php $\_SERVER\['PHP_SELF'\]; ?\>"\>

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

---

Tråden på webben: https://www.webforum.nu/amne/php/184183-php-session
