[PHP] variabele wil niet op 0 gezet worden.

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De website waar ik aan zit te werken is http://www.deviswereld.nl/webshoptesting en deze werkt tot nu toe ook goed, behalve als ik een waarde op 0 wil zetten, dan blijft de huidige waarde gewoon staan. De volgende code gebruik ik om meegegeven waardes uit te lezen.
PHP:
1
2
3
4
5
6
7
8
9
   if($_GET['productid'] and ($_GET['quantity']))
   { 
     $_SESSION['winkelwagen'][$_GET['productid']] = 0 + $_GET['quantity'];
   }   
   
   if($_GET['productid'] and ($_GET['verhoog']))
   { 
     $_SESSION['winkelwagen'][$_GET['productid']]++;
   }


Zodra er een waarde wordt ingevuld wordt deze verstuurd en opgevangen met de bovenste IF-statement. De onderste IF-statement zorgt ervoor dat wanneer op het winkelwagentje wordt geklikt, er 1 product wordt toegevoegd aan het winkelwagen.

[ Voor 29% gewijzigd door Verwijderd op 30-06-2006 10:57 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Wat wil je checken met de
PHP:
1
if($_GET['productid'] and ($_GET['quantity']))

em
PHP:
1
if($_GET['productid'] and ($_GET['verhoog']))
?

Moet dat niet isset($_GET[...]) zijn?

En zet je error_reporting even aan, dan had je zelf gezien dat dit ding notices braakt.

[ Voor 28% gewijzigd door Verwijderd op 30-06-2006 11:00 ]


Acties:
  • 0 Henk 'm!

  • skabouter
  • Registratie: Oktober 2000
  • Laatst online: 20-08 08:55

skabouter

Skabouter

PHP:
1
2
3
4
5
6
7
8
9
if(isset($_GET['productid']) AND isset($_GET['quantity']))
   { 
     $_SESSION['winkelwagen'][$_GET['productid']] = 0 + $_GET['quantity'];
   }   
   
   if(isset($_GET['productid']) AND isset($_GET['verhoog']))
   { 
     $_SESSION['winkelwagen'][$_GET['productid']]++;
   }


Lijkt me betere code, ik neem aan dat je wel bovenaan de pagina
PHP:
1
session_start();
hebt gebruikt?

[ Voor 191% gewijzigd door skabouter op 30-06-2006 11:02 ]

[ Dislect ]


Acties:
  • 0 Henk 'm!

  • Pyrus
  • Registratie: November 2001
  • Laatst online: 20-09 21:30

Pyrus

Hardknock life

Er staat hier toch ook geen code om het op 0 te zetten....?
(of je zou in die eerste ifstatement je quantity uit de get request op -huidige_hoeveelheid gezet moeten hebben ofzo)

LinkedIn


Acties:
  • 0 Henk 'm!

  • skabouter
  • Registratie: Oktober 2000
  • Laatst online: 20-08 08:55

skabouter

Skabouter

Pyrus schreef op vrijdag 30 juni 2006 @ 11:02:
Er staat hier toch ook geen code om het op 0 te zetten....?
(of je zou in die eerste ifstatement je quantity uit de get request op -huidige_hoeveelheid gezet moeten hebben ofzo)
Ik neem aan dat hij de volgende regel bedoeld;

PHP:
1
$_SESSION['winkelwagen'][$_GET['productid']] = 0 + $_GET['quantity'];


Waarbij de winkelwagen dus op 0 wordt gezet + de quantity waarde, dit kan overigens ook gewoon dmv;

PHP:
1
$_SESSION['winkelwagen'][$_GET['productid']] = $_GET['quantity'];

[ Voor 10% gewijzigd door skabouter op 30-06-2006 11:06 ]

[ Dislect ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
skabouter schreef op vrijdag 30 juni 2006 @ 10:59:
PHP:
1
2
3
4
5
6
7
8
9
if(isset($_GET['productid']) AND isset($_GET['quantity']))
   { 
     $_SESSION['winkelwagen'][$_GET['productid']] = 0 + $_GET['quantity'];
   }   
   
   if(isset($_GET['productid']) AND isset($_GET['verhoog']))
   { 
     $_SESSION['winkelwagen'][$_GET['productid']]++;
   }


Lijkt me betere code, ik neem aan dat je wel bovenaan de pagina
PHP:
1
session_start();
hebt gebruikt?
Dank je wel, bovenstaande was inderdaad de oplossing. Met 'isset' wordt er gecheckt of er wel daadwerkelijk iets in de variabelen staat. Blijkbaar wordt de code overgeslagen wanneer er 0 wordt meegegeven (wanneer er geen 'isset' wordt gebruikt).

[ Voor 13% gewijzigd door Verwijderd op 30-06-2006 11:12 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Dat is toch wel vrij logisch... 0 evalueert naar false...

Acties:
  • 0 Henk 'm!

  • Shadowman
  • Registratie: Januari 2002
  • Niet online
Ik raad je aan om voor het casten van een variabele naar int gewoon (int)$var of intval($var) te gebruiken :). (Is imho netter, de 0+ manier werkt wel goed, maar die is imho niet netjes).

Met isset kun je btw meerdere variabelen meegeven, isset($_GET['productid'], $_GET['quantity']) is voldoende :).
Pagina: 1