aantal regels in een sessie laten zien!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kees Mulder

Kees Mulder

31/05/2010 11:51:19
Quote Anchor link
Het lukt me om nu artikelen toe te voegen aan een sesie. Alleen wil ik graag dat hij laat zien hoeveel artikelen (dus niet een totaal aantal) - maar aantal regels er in de sessie staan! Kan iemand me vertellen hoe dat moet?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
session_start();
$sessionid = session_id();
// Toevoegen
if ( isset($_GET['verzenden'] ) && ereg('^[1-9][0-9]*$', $_GET['aantal'])) {
$_SESSION['winkelwagen'][$_GET['ID']] = $_GET['aantal'];
}

// Laat lijst zien
 ?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
</head>

<body>
<br /><br />

Dit is uw id: <?php echo $sessionid ?><br />
Dit is het product:<br />
<?php
if ( isset($_SESSION['winkelwagen'] ) ) {
foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
echo "$val x $key<br />";
}
}

?>

<br />
<a href="a_sessie.php">Terug</a><br />
<br />

<form action="<?php echo $_SERVER["PHP_SELF"] ?>">
Producten <input type="text" name="ID" /><br />
Aantal <input type="text" name="aantal" />
<input type="submit" name="verzenden" value="verzend" />
</form>

Modedit:
Code in juiste tags gezet
Gewijzigd op 31/05/2010 12:34:12 door Chris -
 
PHP hulp

PHP hulp

25/04/2024 17:56:37
 

31/05/2010 11:59:08
Quote Anchor link
echo count($_SESSION['winkelwagen']);?
Die ereg, die verouderd is, kan sowieso met is_numeric of ctype_digit worden vervangen.
 
Jurgen Meijer

Jurgen Meijer

31/05/2010 12:16:51
Quote Anchor link
Ik zou geen is is_numeric gebruiken, de waarden in je session zijn ID's die refereren naar een product. Bij is_numeric geeft 0.1 ook een true terwijl dat nooit een id kan zijn. Dus gewoon controleren met ctype_digit, daar zijn alleen hele getallen toegestaan (1, 2, 3) etc.
 

31/05/2010 12:19:41
Quote Anchor link
Wat mij betreft had hij dat helemaal zelf kunnen uitvinden.
 
Kees Mulder

Kees Mulder

31/05/2010 12:20:47
Quote Anchor link
Maar kunnen jullie me laten zien hoe ik het aantal regels kan weergeven?!
 

31/05/2010 12:23:43
Quote Anchor link
Misschien moet je even een beetje duidelijker wezen als mijn oplossing van hierboven niet werkt.
Verder zou je ook zelf even php.net kunnen gaan leren. Dan kan je php (iig beter dan nu) en kan je wellicht zelf de oplossing vinden.
Gewijzigd op 31/05/2010 12:24:42 door
 
Erik Rijk

Erik Rijk

31/05/2010 12:31:04
Quote Anchor link
Jurgen Meijer op 31/05/2010 12:16:51:
Ik zou geen is is_numeric gebruiken, de waarden in je session zijn ID's die refereren naar een product. Bij is_numeric geeft 0.1 ook een true terwijl dat nooit een id kan zijn. Dus gewoon controleren met ctype_digit, daar zijn alleen hele getallen toegestaan (1, 2, 3) etc.

ctype_digit lees even verder naar beneden.

ctype_digit(1) = false;
ctype_digit('1') = true

Dus niet echt een heel betrouwbare functie.
 
Joren de Wit

Joren de Wit

31/05/2010 12:36:58
Quote Anchor link
Erik, dat ben ik niet met je eens. De functie ctype_digit() is een string functie die controleert of een string alleen uit cijfers bestaat. Hij is dus bedoeld om toe te passen op een string en niet op andere variabelen. En aangezien $_POST en $_GET variabelen altijd strings zijn, werkt het daar prima ;-)

Wil je controleren of een getal binnen PHP een integer is, gebruik dan is_int().
 
Erik Rijk

Erik Rijk

31/05/2010 12:49:41
Quote Anchor link
Ik kan niks anders dan het met je eens zijn! Ik had het nog even opnieuw gelezen en ik zie het nu staan inderdaad :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.