login  Naam:   Wachtwoord: 
Registreer je!
 Forum

sessie hulp

Offline kenzo - 12/04/2008 12:41 (laatste wijziging 12/04/2008 14:58)
Avatar van kenzoPHP beginner Als een klant bestellingen in de winkelwagen heeft zitten wil ik dat hij bij het afsluiten van de pagina een bericht geeft.

Dit gaat niet omdat als een klant van pagina wisselt hij ook iedere keer bericht krijgt.


Nu wil ik dat dan bij het openen van de pagina een bericht weergegeven wordt en daarna (door een aanpassing in de database) niet meer


Het enige probleem is dat als iemand iets in de winkelwagen gooit hij dus meteen een bericht zou krijgen (het veld waarschuwing heeft nog een 0).


Hoe kan ik dat maken dat hij alleen de eerste keer bij het openen van de site (niet de pagina) een bericht krijgt).


Ook 3 x achter elkaar bijvoorbeeld als hij het niet verwijdert of besteld.



Bedankt!

8 antwoorden

Gesponsorde links
Offline timmie_loots - 12/04/2008 13:43
Avatar van timmie_loots PHP gevorderde Als je weet hoe sessies werken, kun je daar een waarde in zetten die kijkt of er een waarschuwing nodig is. Een sessie word elke keer als een gebruiker te lang niet op de pagina is geweest of als hij zijn browser heeft afgesloten gewist.
Offline kenzo - 12/04/2008 14:46
Avatar van kenzo PHP beginner ik weet hoe ik een sessie moet aanmaken, maar ik weet niet hoe ik de tijd moet opgeven?

ik zie het nergens na wat tutorials te hebben bekeken
Offline Simax - 12/04/2008 15:47
Avatar van Simax Onbekend Je kunt beter een tabel 'winkelmandje' aanmaken in je database, met velden 'gebruiker_id', 'product_id' en 'aantal', dan worden de producten in het winkelmandje eeuwig bewaard.

Stel dat je een loginform hebt en een gebruiker zou uitloggen, dan worden je sessies geleegd(dus ook je winkelmandje). Dat wil je niet.
Offline kenzo - 12/04/2008 16:07
Avatar van kenzo PHP beginner de bestellingen worden ook opgeslagen in de database, ik wil alleen via een sessie dat een melding wordt uitgesteld (vanaf 24 na plaatsing van een bestellen mag pas een bericht komen (1x per opening van de site))
Offline Simax - 12/04/2008 16:09
Avatar van Simax Onbekend Even een betere uitleg graag? 
Offline kenzo - 12/04/2008 16:20
Avatar van kenzo PHP beginner ik heb de bestellingen van klanten opgeslagen in de database.

de tabel heet : Bestellingen
Hierin is een veld datum met bijvoorbeeld een waarde: 04-12-2008
omdat op deze dag een bestelling is geplaatst.


Nu wil ik graag een melding geven dat hij nog wat in de winkelwagen heeft zitten als hij het niet besteld.


Natuurlijk mag hij niet meteen een melding geven.
dat moet pas na bijvoorbeeld 24 uur.


Met een sessie wil ik dus 24 uur opslaan en daarna een melding geven.

(if sessie bestaat -> geen melding)
(if sessie niet bestaat (na bv 24 uur) -> Melding weergeven)
Offline timmie_loots - 12/04/2008 16:38 (laatste wijziging 12/04/2008 16:41)
Avatar van timmie_loots PHP gevorderde Als er een datum in een DATE veld staat, kun je zo kijken of er een record is dat minstens één dag oud is:

  1. SELECT COUNT(1) FROM `bestellingen` WHERE DATE_ADD(`datum_veld`, INTERVAL 1 DAY) <= NOW() AND `userid` = 1


Waar de velden/tabelnaam even veranderd moet worden, en de 1 wil je er waarschijnlijk met PHP inzetten (dus het echte userid).

Als er dan een record is gevonden, kun je zo kijken of er al een waarschuwing is gegeven (er is dan een sessie gezet). In totaal krijg je zoiets:

  1. <?php
  2.  
  3. // Kijken of er rows zijn
  4. $rows = mysql_query("SELECT COUNT(1) FROM `bestellingen` WHERE DATE_ADD(`datumveld`, INTERVAL 1 DAY) <= NOW() AND `user_id` = " . $userid);
  5.  
  6. if (mysql_result($rows, 0) == 1) {
  7.  
  8. if (!isset($_SESSION['waarschuwing'])) {
  9.  
  10. // De waarschuwing moet gegeven worden, doe dat hier
  11.  
  12. // Zorgen dat hij niet meerdere keren verschijnt
  13. $_SESSION['waarschuwing'] = 1;
  14.  
  15. }
  16.  
  17. }
  18.  
  19. ?>
Offline kenzo - 12/04/2008 16:44 (laatste wijziging 12/04/2008 16:47)
Avatar van kenzo PHP beginner Bedankt, daar heb ik zeker wat aan.

Even proberen of het lukt!



Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /home/shamrock/public_html/paginas/test.php on line 6

Plaatscode: 6818
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.203s