Functie doet te veel
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function addProduct($add_product_id){
//Producten in session?
if(!isset($_SESSION['producten'])){
//Producten in cookie?
if(isset($_COOKIE['gccprod'])){
$_SESSION['producten'] = $_COOKIE['gccprod'];
}
}
//Voeg product toe
$producten = array();
if(isset($_SESSION['producten'])){ $producten = explode(",", $_SESSION['producten']); }
$producten[count($producten)] = $add_product_id;
//Sla session en cookie op
$_SESSION['producten'] = implode(",", $producten);
setcookie("gccprod", $_SESSION['producten'], time()+60*60*24*100, "/");
}
//Producten in session?
if(!isset($_SESSION['producten'])){
//Producten in cookie?
if(isset($_COOKIE['gccprod'])){
$_SESSION['producten'] = $_COOKIE['gccprod'];
}
}
//Voeg product toe
$producten = array();
if(isset($_SESSION['producten'])){ $producten = explode(",", $_SESSION['producten']); }
$producten[count($producten)] = $add_product_id;
//Sla session en cookie op
$_SESSION['producten'] = implode(",", $producten);
setcookie("gccprod", $_SESSION['producten'], time()+60*60*24*100, "/");
}
$producten is een array die in $_SESSION wordt opgeslagen als csv. Aan het begin van de functie moet hij de session var uitlezen naar de array (explode), een product toevoegen, en dan weer opslaan in de session vars (implode). Maar telkens als ik dit uitvoer voegt hij het product 2x toe, tenzij het er nog niet in staat. Als ik dus leeg begin en product 3 bestel komt er array(3), doe ik dat nog een keer komt er array(3,3,3). enzovoorts
Ik snap niet waarom het niet werkt...
Edit: Wanneer ik het anders doe blijkt dat de functie 2x wordt uitgevoerd. Hier wordt hij aangeroepen:\
Code (php)
1
2
3
4
5
2
3
4
5
if(isset($_GET['cat'])) { $content = showcat($_GET['cat']); }
if(isset($_GET['koop'])) {
addProduct($_GET['koop']);
$content = showcat($product[$_GET['koop']]['categorie']);
}
if(isset($_GET['koop'])) {
addProduct($_GET['koop']);
$content = showcat($product[$_GET['koop']]['categorie']);
}
Hoezo doet hij het dan 2x :S
Gewijzigd op 01/01/1970 01:00:00 door Jeroen van de Ven
En in welk stukje roep je de functie aan? Het kan namelijk ook zo zijn dat je de functie te veel aanroept.
Dat stukje code onderaan is de enige keer dat het wordt aangeroepen (in index.php). Het rare is dat later in de pagina er nog 1 bij op telt maar ik zou niet weten waar of waarom...
Edit:
Het schijnt opgelost te zijn... in ieder geval bedankt !
Gewijzigd op 01/01/1970 01:00:00 door Jeroen van de Ven