Activatie van abonoment
Ik ben bezig met een website en heb reeds een Inlogsysteem na heel wat werk kunnen maken. Deze werkt ondertussen perfect. (mijn website gaat over telefoons en abonomenten) De bezoeker kan nu kiezen uit 3 abonnomenten en bij deze abonnoment een keuze ka maken uit 1 van de 4 telefoons. (2x select option+verzend knop)
Maar nu het leuke gedeelte waar ik niet uit kom. wanneer de gast op verzenden klikt moet deze persoon een activerings code naar zijn email krijgen en vervolgens de activerings code gebruiken om zijn abonnoment te activeren.
Ik heb geprobeertd een beetje te knippen en te plakken bij een normaal inlogsysteem met activatie. maar ik kom er niet uit. Hulp zou top zijn.
Gewijzigd op 01/01/1970 01:00:00 door Ismael aharouay
rand of mt_rand een unieke code generen. Deze zet je bij de gebruiker in de database, en tegelijk verstuur je een email, met daarin een link. In de link staan 2 $_GET waarden, 1 is de user id, de ander is de gegenereerde activatie code.
Wanneer de gebruiker op de link in de email klikt, word hij naar een script, bijv. activatie.php gestuurd, maar met 2 unieke get waarden. De get waarden vergelijk je met die uit de database, en als ze overeenkomen zet je bijvoorbeeld in de database dat het bevestigt is.
Zorg dat er in je database model rekening houdt met activeringscode. Die moet per gebruiker uniek zijn. Op het moment dat de gebruiker bij het eindstation komt, laat je met php Wanneer de gebruiker op de link in de email klikt, word hij naar een script, bijv. activatie.php gestuurd, maar met 2 unieke get waarden. De get waarden vergelijk je met die uit de database, en als ze overeenkomen zet je bijvoorbeeld in de database dat het bevestigt is.
Enkel zou ik voor het genereren van de unieke code wat meer erin verwerken.
1) het ID van de gebruiker
2) een random getal
3) een tijdsstempel
4) wat vaste tekst
En daarna een hash van maken (md5 of sha1 bijvoorbeeld)
Dit alles om de code veel minder gokbaar te maken.
Een voorbeeldje:
Deze activatiecode moet je natuurlijk ook opslaan in de database.
Om de mail te versturen kan je gebruik maken van SwiftMailer.