» »

Košarica pomoč - nujno

Košarica pomoč - nujno

uporabniik ::

Pozdravljeni,

Izdelano imam scripto za dodajanje izdelkov v košarico sedaj se pa pojavljajo napake.
Namreč, če dodam izdelek prvič se doda, ko ga kliknem ponovno se količina poveča, ko izberem nov izdelek ga dodam normalno ko pa ponovno kliknem nanj se vrednost poveča ampak se doda tudi nov kar se ne bi smelo ampak povečati.

Mislim da je problem v for zanki.

Prosim za pomoč.

$id = $_GET['id'];
$kolicina = $_POST['kolicina'];
		
if(isset($_POST['v_kosarico']))
{
	if($_SESSION['kosarica'] == true)		//preverimo če obstaja seja košarica
	{
		$stevilo_kos = count($_SESSION['kosarica']);		//preberemo koliko zapisov je za košarico
			
		for($i=0; $i<$stevilo_kos; $i++)
		{	
			$seja = $_SESSION['kosarica'][$i];
			$expl = explode('_', $seja);					//z for zanko razdelimo vrednost seje na id_izdelka in kolicino
					
			if($expl[0] == $id)					//z if pogojem preverimo če je prva vrednost exploda se pravi id_izdelka isti kot v url
			{
				$kolicina_skupaj = ($expl[1] + $_POST['kolicina']);			//sešetejemo količine
				$_SESSION['kosarica'][$i] = $id . "_" . $kolicina_skupaj;		//povečamo količino
				break;
			}	
			else 
			{
				$_SESSION['kosarica'][$stevilo_kos] = $id . "_" . $kolicina;		//ustvarimo novo sejo	
			}				
		}
	}
	else			
	{	
		$_SESSION['kosarica'][0] = $id . "_" . $kolicina;		//ko seja še ne obstaja se doda začentna z 0
	}
}


Hvala v naprej.

Lp

uporabniik ::

A res noben ne ve kako popravit zadevo?

JercSI ::

Jaz bi celotno košarico bolj poenostavil. Če vodiš le ID in QTY bi session kosarica spremenil v asociativen array. Če rabiš poleg IDja in QTY, bi se lotil zadeve s classi.
        
if(isset($_POST['v_kosarico']))
{
    if (isset($_SESSION['kosarica'][$id])) {
        // star item v košarici, povečaj količino
        $_SESSION['kosarica'][$id] += $kolicina;
    } else{
        if (isset($_SESSION['kosarica'])) {
            // naredimo nov array, v katerega se bodo shranjevali izdelki košarice
            $_SESSION['kosarica'] = array();
        }
        // nov item v košarici, nastavi qty
        $_SESSION['kosarica'][$id] = $kolicina;
    }
}

Zgodovina sprememb…

  • spremenil: JercSI ()

Ziga Dolhar ::

Opozoril bi na eno načelo varnega programiranja - nikoli ne zaupaj podatkom, ki ti jih posreduje uporabnik. Tudi če jih posreduje s POST.
https://dolhar.si/


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

ebay (strani: 1 2 )

Oddelek: Pomoč in nasveti
6312276 (4020) opeter
»

Sestavi.si Izkušnje (strani: 1 2 )

Oddelek: Kaj kupiti
8821779 (6044) neocodexx
»

MojaČokolada.si - mnenja? (strani: 1 2 )

Oddelek: Izdelava spletišč
6211916 (8452) Tilen
»

Nakupovalni voziček, seje in update količine?

Oddelek: Izdelava spletišč
51324 (1136) phyro
»

sestava baze spletne trgovine

Oddelek: Programiranje
171392 (873) techfreak :)

Več podobnih tem