Hallo,
Ik heb een formulier wat men dient in te vullen om aan te melden. Na het invullen krijgt men een mailtje met een activatielink.
Deze activatielink wil ik laten bestaan uit de volgende opbouw: activeren.php?email=naam@email.nl&actief=1
Wanneer men op de link klinkt gaat actief van 0 naar 1. 1 betekend dus dat het account actief is.
Het probleem is, hoe bouw ik dit op?
Zie onderstaand voor het aanmeldings scriptje:
Is er iemand die mij hierbij zou kunnen helpen?Code:<?php include('inc/db.php'); $sql="INSERT INTO <knip> (voornaam, achternaam, adres, postcode, woonplaats, email, geboortedatum, giro, bank, paspoort, abo) VALUES ('$_POST[voornaam]','$_POST[achternaam]','$_POST[adres]','$_POST[postcode]','$_POST[woonplaats]','$_POST[email]','$_POST[geboortedatum]','$_POST[giro]','$_POST[bank]','$_POST[paspoort]','$_POST[abo]')"; if (!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); } echo ' <table width="842" border="0" cellspacing="0" cellpadding="0"> <tr style="background-color:#8d54a2;"> <td height="170" colspan="5" valign="top"><img src="images/header.jpg" width="842" height="140" alt="" /></td> </tr> <tr style="background-color:#8d54a2;"> <td>Bedankt voor uw interesse. U ontvangt een e-mailbericht voor het definitief bevestigen van uw aanvraag.</td> </tr> <tr style="background-color:#8d54a2;"> <td colspan="5"><img src="images/footer.jpg" width="842" height="167" alt="" /></td> </tr> </table> '; mysql_close($con); ?> <?php if ($_POST) { $to = $_POST['email']; $from = "noreply@<knip>.nl"; $replyto = $_POST['voornaam'] . " <" . $_POST['email'] . ">"; $subject = "<knip> - Activeren"; $message = ' Bedankt voor het aanmelden. Gebruik onderstaande link om uw aanmelding te bevestigen en te activeren. Bevestig en activeer uw aanmelding: hier de link Met vriendelijke groet, <knip> '; $headers = "From: " . $from . "\n"; $headers .= "Return-path: " . $from . "\n"; $headers .= "Reply-to: " . $replyto . "\n"; if (mail($to, $subject, $message, $headers)) { echo ""; } else { echo "<p>Een fout heeft opgetreden tijdens het verzenden van uw bevestigingsmail.</p>"; } } ?>
Alvast bedankt!
- PHP/ MySQL vraagje
-
23-02-2009, 11:51 #1
- Berichten
- 587
- Lid sinds
- 18 Jaar
PHP/ MySQL vraagje
-
-
23-02-2009, 15:10 #2
Xynta Hosting B.V.
- Berichten
- 125
- Lid sinds
- 17 Jaar
Waarom maak je niet een code als men zich aanmeld bijvoorbeeld gebasseerd op iemand zijn e-mail adres en de unix date. Vervolgens sla je de unixdate op in de database zodra iemand zich aanmeld en stuur je deze mee als bevestigen.php?c=1234567890&mail=jantje@jantje.nl.
Als de klant erop klikt doe je een select uit de database en gebruik je de udate en email om de juiste gebruiker te zoeken, vervolgens doe je een update waarbij je de code (unix date) in 0 veranderd. In je inlogscript geef je dan alleen mensen waarbij de code 0 is de mogelijkheid om in te loggen. Dit misschien een idee?
-
23-02-2009, 15:16 #3
- Berichten
- 587
- Lid sinds
- 18 Jaar
Xynta,
Bedankt voor je bericht.
Ter informatie -> Het aanmeldingsformulier is niet voor een login applicatie o.i.d. Het is een online inschrijf mogelijkheid voor het ontvangen van een kortingspas.
Hoe jij het aangeeft is in principe hetzelfde, behalve dat jij met een unieke code werkt. Het lijkt mij makkelijker (in mijn opzicht) om de structuur activeren.php?email=naam@mail.com&activeer=1 te gebruiken.
Mijn PHP/MySQL kennis is niet van het hoogste niveau, vandaar dat ik moeite heb met het opbouwen van dit klein systeempje.
Waar het probleem dus ligt is het uitvoeren van het activeren. Ik heb de structuur en de werking hier op papier staan, enkel de codes en het opbouwen van de codes werkt wat tegen.
-
23-02-2009, 15:58 #4
- Berichten
- 730
- Lid sinds
- 18 Jaar
Origineel gepost door Jeroen Marechal
Xynta,
Bedankt voor je bericht.
Ter informatie -> Het aanmeldingsformulier is niet voor een login applicatie o.i.d. Het is een online inschrijf mogelijkheid voor het ontvangen van een kortingspas.
Hoe jij het aangeeft is in principe hetzelfde, behalve dat jij met een unieke code werkt. Het lijkt mij makkelijker (in mijn opzicht) om de structuur activeren.php?email=naam@mail.com&activeer=1 te gebruiken.
Mijn PHP/MySQL kennis is niet van het hoogste niveau, vandaar dat ik moeite heb met het opbouwen van dit klein systeempje.
Waar het probleem dus ligt is het uitvoeren van het activeren. Ik heb de structuur en de werking hier op papier staan, enkel de codes en het opbouwen van de codes werkt wat tegen.
Wat je ook kunt doen om een hash te maken is gewoon een MD5 string maken en die als code gebruiken.
BV: bij registratie maak je MD5 string van reg_ip, reg_host, reg_date, useragentstring) en die stop je in je database, bij activatie dient deze MD5 hash opgegeven te worden.
Lekker simpel en doeltreffend! ;)
-
23-02-2009, 16:15 #5
- Berichten
- 587
- Lid sinds
- 18 Jaar
Eric,
Bedankt voor je reactie. Ik heb juist gekozen voor het checken op mail omdat het MD5 hash principe volledig faalde. Het leek mij makkelijker om het op deze manier te doen.
Controleren of het emailadres bestaat, easy as it is. Geen geldig e-mailadres is geen kortingspas.
Hoe zou ik door middel van een md5 string deze code op kunnen bouwen? Het probleem is dus dat ik qua theorie weet hoe in het elkaar zou moeten steken, echter blijf ik mislopen in praktijk. Het programmeren van zo'n stukje code heb ik keer na keer geprobeerd zonder resultaat
-
23-02-2009, 19:55 #6
- Berichten
- 506
- Lid sinds
- 16 Jaar
Zoiets zou je kunnen doen:
Code:<? $email_code = md5($_POST['email']); $email = $_POST['email']; $sql = " INSERT INTO bla"; $sql .= " (email, email_code)"; $sql .= " VALUES"; $sql .= " ('$email','$email_code'); mysql_query($sql); // mail // url mailen: http://url/activeer.php?email_code=$email_code // activeer.php: $sql = " UPDATA bla"; $sql .= " SET actief='1'"; $sql .= " WHERE email_code='$email_code'"; mysql_query($sql); } ?>
Laatst aangepast door Michel Willemse : 23-02-2009 om 20:14
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic