PHP PDO TUTORIALS

Login And Registration Using PHP PDO Mysql

Written by admin
<?php 
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','');
define('DB_NAME','student_record');
// Establish database connection.
try
{
$dbconnection = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USER, DB_PASS,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
}
catch (PDOException $e)
{
exit("Error: " . $e->getMessage());
}
?>
<?php
  session_start();
//Database Configuration File
include  'dbconnection.php';
error_reporting(0);
  if(isset($_POST['submit']))
  {
   $uname=$_POST['email'];
    $password=md5($_POST['password']);
    $sql ="SELECT email,contactno,password FROM tblregistration WHERE (email=:usname || contactno=:usname) and (password=:usrpassword)";
    $query= $dbconnection -> prepare($sql);
    $query-> bindParam(':usname', $uname, PDO::PARAM_STR);
    $query-> bindParam(':usrpassword', $password, PDO::PARAM_STR);
    $query-> execute();
    $results=$query->fetchAll(PDO::FETCH_OBJ);
  if($query->rowCount() > 0)
  {
    $_SESSION['email']=$_POST['email'];
    echo "<script >document.location = 'welcome.php'; </script>";
  } else{
    $error="Invalid Details";
  }
}
?>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<div class="container">
        <div class="row centered-form">
        <div class="col-sm-4 ">
        	<div class="panel panel-default">
        		<div class="panel-heading">
			    		<h3 class="panel-title">Registration and Login</h3>
              <p style="color: red"><?php echo $error;?></p>
			 			</div>
			 			<div class="panel-body">
			    		<form method="POST">
			    			<div class="form-group">
			    				<label for="email">Email</label>
			    				<input type="email" name="email" id="email" class="form-control input-sm" placeholder="Email Address" required="">
			    			</div>
			    			
			    			<div class="form-group">
			    				<label for="Password">Password</label>
			    				<input type="password" name="password" id="password" class="form-control input-sm" placeholder="Password">
			    					
			    			</div>
			    			
			    			  <div class="col-sm-6 ">
                               <input type="submit" name="submit" value="Login" class="btn btn-info btn-block">
                              
			    		      </div>
			    		       <div class="col-sm-6 ">
                               <a href="registration.php"><p class="btn btn-info btn-block">Registration</p></a>
                               
			    		      </div>
			    		</form>
			    	</div>
	    		</div>
    		</div>
    	</div>
    </div>
    <style type="text/css">
    	body{
    background-color: #fff;
}
.centered-form{
	margin-top: 60px;
}

.centered-form .panel{
	background: rgba(255, 255, 255, 0.8);
	box-shadow: rgba(0, 0, 0, 0.3) 20px 20px 20px;
}
    </style>
<?php 
include  'dbconnection.php';
$error= $succmsg=NULL;
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$contactno = $_POST['contactno'];
$gender = $_POST['gender'];
$password=$_POST['password'];
$pass=md5($password);
$confrmpss = $_POST['confirmpassword'];

$usermatch=$dbconnection->prepare("SELECT email,contactno FROM tblregistration WHERE (email=:usreml || contactno=:mblenmbr)");
$usermatch->execute(array(':usreml'=>$email,':mblenmbr'=>$contactno)); 
while($row=$usermatch->fetch(PDO::FETCH_ASSOC))
{
$usrdbeml= $row['email'];
$usrdbmble=$row['contactno'];

}
if(empty($name))
 {
  $error="Please Enter Name";
 }

else if(empty($email))
 {
  
   $error="Please Enter valid email id!";
 }
 else if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email))
 {
  
   $error="'Email not valid!!', {timeOut: 5000})</script>";
 }
 

else if(!is_numeric($contactno))
 {
  
   $error="Contact number contain numbers only!";
 }
 else if(strlen($contactno)!=10)
 {
 
   $error="Enter 10 digit valid contact no  !";
}

else if($email==$usrdbeml || $contactno==$usrdbmble)
 {
  $error="Email Id or Contact Number Already Exists!";
 }

 else if (empty($gender))
    {
        $error = "Please select gender";
    }
else if($password="" || $confrmpss=="")
 {
	 

   $error="Password And Confirm Password Not Empty!";
 
 }
 else if($_POST['password'] != $_POST['confirmpassword'])
 {
  
   $error="Password And Confirm Password Not Matched";
 }
	else if (preg_match('/(?=^.{6,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$/',$password))
	{
	
		 $error="You did not enter valid  password";
	}
	else{

$sql="INSERT INTO tblregistration (name,email,contactno,gender,password) 
values(:names,:emailid,:mobileno,:gendr,:passwords)";
$query = $dbconnection -> prepare($sql);
$query->bindParam(':names',$name,PDO::PARAM_STR);
$query->bindParam(':emailid',$email,PDO::PARAM_STR);
$query->bindParam(':mobileno',$contactno,PDO::PARAM_STR);
$query->bindParam(':gendr',$gender,PDO::PARAM_STR);
$query->bindParam(':passwords',$pass,PDO::PARAM_STR);
$query -> execute();
$lastInsertId = $dbconnection->lastInsertId();
if($lastInsertId>0)
{
$succmsg= "Data insert Successfully";
}
else {

$succmsg= "Data not insert successfully";
}
}
      
}

?>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<div class="container">
        <div class="row centered-form">
        <div class="col-sm-4 ">
        	<div class="panel panel-default">
        		<div class="panel-heading">
			    		<h3 class="panel-title">Registration and Login</h3>
			 			</div>
			 			<div class="panel-body">
			 				<p style="color: red;"><?php echo $error;?></p>
			 					<p style="color: green;"><?php echo $succmsg;?></p>
			    		<form method="POST">
			    			
                            <div class="form-group">
			    				<label for="name">Name</label>
			    				<input type="text" name="name" id="name" class="form-control input-sm" placeholder="Name">
			    			</div>
			    			<div class="form-group">
			    				<label for="email">Email</label>
			    				<input type="email" name="email" id="email" class="form-control input-sm" placeholder="Email Address">
			    			</div>
			    			<div class="form-group">
			    				<label for="contactno">Contact No</label>
			    				<input type="text" name="contactno" id="contactno" class="form-control input-sm" placeholder="Contact No"  maxlength="10">
			    			</div>
			    			<div class="form-group">
			    				<label for="name">Gender</label>
			    				<input type="radio" name="gender" value="Male">Male<input type="radio" name="gender" value="Female">Female
			    			</div>
			    			<div class="form-group">
			    				<label for="password">Password</label>
			    				<input type="Password" name="password" id="password" class="form-control input-sm" placeholder="Password">
			    					
			    			</div>
			    			<div class="form-group">
			    				<label for="name">Confirm Password</label>
			    				<input type="password" name="confirmpassword" id="confirmpassword" class="form-control input-sm" placeholder="Confirm Password">
			    			</div>
			    			  <div class="col-sm-6 ">
                               <input type="submit" name="submit" value="Registration" class="btn btn-info btn-block">
                              
			    		      </div>
			    		       <div class="col-sm-6 ">
                               <a href="index.php"><p class="btn btn-info btn-block">Login</p></a>
                               
			    		      </div>
			    		</form>
			    	</div>
	    		</div>
    		</div>
    	</div>
    </div>
    <style type="text/css">
    	body{
    background-color: #fff;
}
.centered-form{
	margin-top: 60px;
}

.centered-form .panel{
	background: rgba(255, 255, 255, 0.8);
	box-shadow: rgba(0, 0, 0, 0.3) 20px 20px 20px;
}
    </style>
<?php
  session_start();
?>
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<div class="container">
        <div class="row centered-form">
        <div class="col-sm-12 ">
        	<div class="panel panel-default">
          
        		<div class="panel-heading">
			    		<h3 class="panel-title">Registration and Login</h3>
              <?php echo $_SESSION['email']; ?>
             <a href="logout.php"><h3 class="panel-title" style="float: right;margin-top: -18px;">Logout</h3></a>
             
			 			</div>
			 			<div class="panel-body">
			    	time. I really like to find out and share my knowledge with others.I founded ThePhpConcept in March 2020. I started this blog in order that I can interact with some like-minded people and also help people learning PHP, Mysql, jQuery, Html, and PHP Projects and related technologies.
Support-thephpconcept@gmail.comtime. I really like to find out and share my knowledge with others.I founded ThePhpConcept in March 2020. I started this blog in order that I can interact with some like-minded people and also help people learning PHP, Mysql, jQuery, Html, and PHP Projects and related technologies.
Support-thephpconcept@gmail.com
			    	</div>
	    		</div>
    		</div>
    	</div>
    </div>
    <style type="text/css">
    	body{
    background-color: #fff;
}
.centered-form{
	margin-top: 60px;
}

.centered-form .panel{
	background: rgba(255, 255, 255, 0.8);
	box-shadow: rgba(0, 0, 0, 0.3) 20px 20px 20px;
}
    </style>
<?php
  session_start();
include  'dbconnection.php';
session_destroy();
header("location: index.php");
exit();
?>
Login And Registration Using PHP PDO MySQL
Size: 3kb
Version: 3.0

About the author

admin

Hi there! I'm Shiv Gupta. I specialized in building Websites. I write blogs in my free time. I really like to find out and share my knowledge with others.I founded ThePhpConcept in March 2020. I started this blog in order that I can interact with some like-minded people and also help people learning PHP, Mysql, jQuery, Html, and PHP Projects and related technologies.
Support-thephpconcept@gmail.com

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.