|
|
|
|
![]() ![]() |
Apr 23 2008, 07:47 AM
Post
#1
|
|
|
Super Member ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Group: [HOSTED] Posts: 397 Joined: 9-February 08 Member No.: 57,615 |
Hi, everyone. I'm offering the next PHP tutorial that verifies an email address of an user who wants to register on your site.
This is how it works. When someone, went to registration page and filled out all of the details such as Name, Password, email and so on and submit those details to a server. The user is getting unique registration code to his or her email account, the one has to be clicked to activate the account. 1. Outline: a) You need to create or build the following files: -config.php (The configuration file) -signup.php (Initial Registration) -signup_ac.php (Post Registration) -confirmation.php (The confirmation link) -temp_members (The temporary members stored in, the confirmation link is sent to them) -registered_members (The registered members, who pressed the confirmation link, and became registered) SQL CREATE TABLE `temp_members_db` ( `confirm_code` varchar(65) NOT NULL default '', `name` varchar(65) NOT NULL default '', `email` varchar(65) NOT NULL default '', `password` varchar(15) NOT NULL default '', `country` varchar(65) NOT NULL default '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1; SQL CREATE TABLE `registered_members` ( `id` int(4) NOT NULL auto_increment, `name` varchar(65) NOT NULL default '', `email` varchar(65) NOT NULL default '', `password` varchar(65) NOT NULL default '', `country` varchar(65) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 2. Creating the configuration file (config.php): CODE <? $host="localhost"; // Host name $username="yourusername"; // Mysql username $password="yourpasword"; // Mysql password $db_name="yourdatabasename"; // Database name //Connect to server and select database. mysql_connect("$host", "$username", "$password")or die("cannot connect to server"); mysql_select_db("$db_name")or die("cannot select DB"); ?> 3. Creating the initial registration file (signup.php) HTML <table width="350" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td><form name="form1" method="post" action="signup_ac.php"> <table width="100%" border="0" cellspacing="4" cellpadding="0"> <tr> <td colspan="3"><strong>Sign up</strong></td> </tr> <tr> <td width="76">Name</td> <td width="3">:</td> <td width="305"><input name="name" type="text" id="name" size="30"></td> </tr> <tr> <td>E-mail</td> <td>:</td> <td><input name="email" type="text" id="email" size="30"></td> </tr> <tr> <td>password</td> <td>:</td> <td><input name="password" type="password" id="password" size="30"></td> </tr> <tr> <td>Country</td> <td>:</td> <td><input name="country" type="text" id="country" size="30"></td> </tr> <tr> <td> </td> <td> </td> <td><input type="submit" name="Submit" value="Submit"> <input type="reset" name="Reset" value="Reset"></td> </tr> </table> </form></td> </tr> </table> 3. Creating the post registration file (signup_ac.php) where an user's information details as well as confirmation code are said to be stored in database. CODE <? include('config.php'); // table name $tbl_name=temp_members_db; // Random confirmation code $confirm_code=md5(uniqid(rand())); // values sent from form $name=$_POST['name']; $email=$_POST['email']; $country=$_POST['country']; // Insert data into database $sql="INSERT INTO $tbl_name(confirm_code, name, email, password, country)VALUES('$confirm_code', '$name', '$email', '$password', '$country')"; $result=mysql_query($sql); // if suceesfully inserted data into database, send confirmation link to email if($result){[/sql] // send e-mail to ... $to=$email; // Your subject $subject="Your confirmation link here"; // From $header="from: your name <your email>"; // Your message $message="Your Comfirmation link \r\n"; $message.="Click on this link to activate your account \r\n"; $message.="http://www.yourweb.com/confirmation.php?passkey=$confirm_code"; // send email $sentmail = mail($to,$subject,$message,$header); } // if not found else { echo "Not found your email in our database"; } // if your email succesfully sent if($sentmail){ echo "Your Confirmation link Has Been Sent To Your Email Address."; } else { echo "Cannot send Confirmation link to your e-mail address"; } ?> 4. Creating the confirmation file page (confirmation.php), when it is clicked, the user is registered. CODE <? include('config.php'); // Passkey that got from link $passkey=$_GET['passkey']; $tbl_name1="temp_members_db"; // Retrieve data from table where row that match this passkey $sql1="SELECT * FROM $tbl_name1 WHERE confirm_code ='$passkey'"; $result1=mysql_query($sql1); // If successfully queried if($result1){ // Count how many row has this passkey $count=mysql_num_rows($result1); // if found this passkey in our database, retrieve data from table "temp_members_db" if($count==1){ $rows=mysql_fetch_array($result1); $name=$rows['name']; $email=$rows['email']; $password=$rows['password']; $country=$rows['country']; $tbl_name2="registered_members"; // Insert data that retrieves from "temp_members_db" into table "registered_members" $sql2="INSERT INTO $tbl_name2(name, email, password, country)VALUES('$name', '$email', '$password', '$country')"; $result2=mysql_query($sql2); } // if not found passkey, display message "Wrong Confirmation code" else { echo "Wrong Confirmation code"; } // if successfully moved data from table"temp_members_db" to table "registered_members" displays message "Your account has been activated" and don't forget to delete confirmation code from table "temp_members_db" if($result2){ echo "Your account has been activated"; // Delete information of this user from table "temp_members_db" that has this passkey $sql3="DELETE FROM $tbl_name1 WHERE confirm_code = '$passkey'"; $result3=mysql_query($sql3); } } ?> Finish. That's the simple tutorial in PHP. There are more explanation points inside the code. If anyone, can improve please let me know. |
|
|
|
![]() ![]() |
Similar Topics
|
Lo-Fi Version | Time is now: 23rd November 2008 - 09:57 AM |