Dville Posted August 15, 2006 Share Posted August 15, 2006 I would like to add email confirmation to my current basic member system.Does anyone know of any articles, that can explain how to add this. Or maybe does anyone know of a simple concept of how this would actually work?I am pretty clueless when it comes to what goes on behind the scenes during an email confirmation.Thanks in advanced. Link to comment https://forums.phpfreaks.com/topic/17580-email-confirmation/ Share on other sites More sharing options...
hostfreak Posted August 15, 2006 Share Posted August 15, 2006 An email confirmation for what? New registrations, information change, or what? Link to comment https://forums.phpfreaks.com/topic/17580-email-confirmation/#findComment-74904 Share on other sites More sharing options...
Dville Posted August 15, 2006 Author Share Posted August 15, 2006 new signups, yes. before allowing them to sign into their account Link to comment https://forums.phpfreaks.com/topic/17580-email-confirmation/#findComment-74907 Share on other sites More sharing options...
tomfmason Posted August 15, 2006 Share Posted August 15, 2006 This is what I do. First when the user signs up I create a random string with a function like this.[code=php:0]function makestring() { $salt = "abchefghjkmnpqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $i = 0; while ($i <= 22) { $num = rand() % 33; $tmp = substr($salt, $num, 1); $rstring = $rstring . $tmp; $i++; } return $rstring; }[/code]After I create the string I insert this random string into the database in a field called confirm and send them an email with a link like this. http://www.yoursite.com/comfirm.php?id=arandomstring&[email protected]Here is the confirm.php[code]<?phpinclude("db.php");$id = mysql_real_escape_string(trim($_GET['id']));$email = mysql_real_escape_string(trim($_GET['email']));$sql = sprintf("SELECT COUNT(*) AS `confirm` FROM `users` WHERE `id` = '%s' AND `email` = '%s'", $id, $email);$res = mysql_query($sql) or die(mysql_query());$confirm = mysql_result($res, 0, 'confirm');if ($confirm == 1) { $q = mysql_query("SELECT * FROM `users` WHERE `email` = '$email'") or die(mysql_error()); while($rw = mysql_fetch_assoc($q)) { echo "Hello " . $rw['username'] . " you have confirmed your the email address $email"; }}else{ echo "There was some kind of error. Please contact the webmaster";} ?>[/code]Hope this helps,Tom Link to comment https://forums.phpfreaks.com/topic/17580-email-confirmation/#findComment-74909 Share on other sites More sharing options...
Dville Posted August 15, 2006 Author Share Posted August 15, 2006 Sweet, thanks again. Link to comment https://forums.phpfreaks.com/topic/17580-email-confirmation/#findComment-74915 Share on other sites More sharing options...
Dville Posted August 15, 2006 Author Share Posted August 15, 2006 So would I update the 'confirm' row in confirm.php, to something like 'confirmed' and in login.php, have it check for confirmed in the confirm row, and if it is anything other than 'confirmed' then not allow them to login? Link to comment https://forums.phpfreaks.com/topic/17580-email-confirmation/#findComment-74932 Share on other sites More sharing options...
tomfmason Posted August 15, 2006 Share Posted August 15, 2006 Yes sorry forgot to metion that. Link to comment https://forums.phpfreaks.com/topic/17580-email-confirmation/#findComment-74934 Share on other sites More sharing options...
Dville Posted August 15, 2006 Author Share Posted August 15, 2006 Awesome, that works out perfectly! Link to comment https://forums.phpfreaks.com/topic/17580-email-confirmation/#findComment-74941 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.