login  Naam:   Wachtwoord: 
Registreer je!
 Forum

een sessie versturen

Offline Clemens32 - 30/08/2006 03:23
Avatar van Clemens32PHP interesse Mischien een hele domme vraag hoor, maar ik krijg het niet voor elkaar om een variabele van de ene naar de andere pagina te zetten.
Ik kan nergens iets vinden wat ik snap, vandaar dat ik de vraag maar rechtstreeks stel hier.
Ik snap dat dat met een sessie moet, maar . . . .
Ik wil dus bijvoorbeeld $produktA versturen naar winkelmandje.php.

<a href="winkelmandje.php">Klik hier om een produkt toe te voegen</a>

Hoe verstuur ik dan dat produkt in een sessie mee en hoe haal ik het in winkelmandje.php op?

9 antwoorden

Gesponsorde links
Offline Ontani - 30/08/2006 03:34
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
het zou eventueel ook zonder sessie kunnen lukken (wat mij ook gemakkelijker lijkt).

Maak van de link:
<a href="winkelmandje.php?addProduct=productA">...</a>

Op de pagina winkelmandje.php kijk je of $_GET['addProduct'] een waarde heeft, indien ja voeg deze toe aan je sessie en aan je lijst met producten.

Dit lijkt me een makkelijkere manier als wat jij nu in gedachte hebt.

Ook kan dit natuurlijk via een andere pagina die enkel gebruikt wordt op producten toe te voegen aan het winkelmandje. Zodat je code mooi verspreidt wordt over verschillende pagina's wat het een stuk gemakkelijker en overzichtelijker maakt.

Bijvoorbeeld:
<a href="winkelmandjeToevoegen.php?product=productA">...</a>
Offline Clemens32 - 30/08/2006 03:41
Avatar van Clemens32 PHP interesse Even kijken hoor.

Ik heb bijvoorbeeld:

produkt = $produkt
prijs = $prijs
gegevens = $gegevens

Dan doe ik dus zo:

<a href="winkelmandje.php?produkt=<?php echo $produkt; ?>&prijs=<?php echo $prijs; ?>&gegevens=<?php echo $gegevens; ?>">klik hier</a>

En dan kan ik met $_GET op de volgende pagina alles eruit halen?

$produkt = $_GET['produkt']
$prijs = $_GET['prijs']
$gegevens = $_GET['gegevens']

Of heb ik er nu helemaal niks van begrepen????
Offline Ontani - 30/08/2006 03:47
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
nope, je hebt het perfect begrepen.
er zijn wel simpelere manieren om die url te herschrijven 

<a href="winkelmandje.php?produkt=<?=$produkt;?>&prijs=<?=$prijs;?>&gegevens=<?=$gegevens;?>">klik hier</a>

<?="Test";?> is een verkorte manier voor: <?php echo "Test"; ?>

Maar het lijkt me ook interresanter om enkel het product mee te geven naar de volgende pagina en op basis daarvan de rest van de gegevens uit een database te halen. Want als ik naar de url
winkelmandje.php?produkt=1&prijs=4654564646465456&gegevens=geen zou gaan dan kan ik de prijs ervan zelf bepalen.

als je
  1. $produkt = addslashes(htmlentities($_GET['produkt']));
  2. // addslashes en htmlentities voor beveiliging
  3.  
  4. $prijs = query aan de hand van $produkt
  5. $gegevens = query aan de hand van $produkt


gebruikt. Dan kunnen deze gegevens niet "vervalst" worden.
Offline Clemens32 - 30/08/2006 03:52 (laatste wijziging 30/08/2006 04:20)
Avatar van Clemens32 PHP interesse Ja ok, dat is zo.
Ik maakte alleen even die url om te kijken of ik het dan goed begrepen heb.
Bedankt voor de duidelijke uitleg.

[edit]
Ik heb dan toch nog een vraagje.
Wat nou als ik dus één produkt geupload heb en ik ga terug naar het produktoverzicht en voeg er nog een produkt toe aan winkelmandje.php ?
Moet het dan niet toch op één of andere manier in een sessie gezet worden?
[/edit]
Offline Ontani - 30/08/2006 08:09
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Zoiets wordt wel het best in een sessie gezet.

als je op elke pagina bovenaan zet:


dan kan je normaal gezien op elke pagina de informatie uit je sessie halen en wegschrijven.
Offline Clemens32 - 30/08/2006 09:00
Avatar van Clemens32 PHP interesse Ja ok,

Maar op welke pagina moet ik die sessie dan maken?
Op produktoverzicht.php of op winkelwagen.php en hoe moet ik die sessie dan declareren, dus hoe krijgt die sessie zijn waarde?
Offline jensen - 30/08/2006 09:31
Avatar van jensen Nieuw lid Je maakt de sessie op de pagina die het toevoegen aan een winkelkarretje verwerkt.
if sessie niet bestaat
maak nieuwe sessie aan
else
voeg toe aan bestaande sessie
Offline CDNC - 30/08/2006 09:37 (laatste wijziging 30/08/2006 09:41)
Avatar van CDNC PHP ver gevorderde welk je met een includ-systeem? dwz datje een index-pagina hebt met de layout enz. en in de content (ofzo) dan de pagina include of werk je met ofzonderlijke pagina's en include je in die ofzonderlijke pagina's de header & footer?

In het geval 2 moet je boven ELKE pagina session_start zette. Indien het eerste geval, dan moet je enkel helemaal bovenaan van de INDEX.php de session_start.

Een waarde toevoegen aan een session-variabelen doe je op dezelfde manier als aan een gewonen varviabelen,
  1. <? // mooie kleurtjes X-D
  2. # bij een vaste waarde
  3. $_SESSION['producten'] = "MijnProduct";
  4.  
  5. # bij een variabele waarde
  6. $MijnVar = "HAllo!!" // dan kan ook met $_GET['iets'] gedaan worden
  7. $_SESSION['producten'] = $MijnVar;
  8. ?>


Edit: Houd er wel rekening mee dat een gebruiker de URI zelf kan aanpassen, dus je script is niet helemaal veilig als je de $_GET waarden gewoon in je db zet of aan de hand waarvan iets uit de db selecteert, ik denk dat het ook beter is om de product-ID's mee te geven in het uri, dan kan je op verwerkings pagina kijken of $_GET['p'] (=> Pid => ProductID) numeric is (is_numeric()) en een numerieke waarde is totaal ongevaarlijk om iets mee uit de db te halen.
Offline Clemens32 - 30/08/2006 10:25
Avatar van Clemens32 PHP interesse Zou iemand even naar mijn code willen kijken en dan zeggen hoe ik het in dit geval moet doen.
Ik weet dat ik in winkelwagen.php een form moet maken om uiteindelijk de bestelling te plaatsen, maar daar gaat het nu even niet om.
Alvast bedankt.

http://www.plaatscode.be/2380/
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s