Friday, 24 July 2020

Make Social Networking Sites in PHP Mysql using Ajax

Make Social Networking Sites in PHP Mysql using Ajax


Hi, Are you looking for tutorial on How to build a social network websites from scratch by using PHP language with Mysql Database & Ajax, then you have land on right place because here we are going to learn How to make social social networking sites in PHP with Mysql database and Ajax jQuery. On the web most of the social networking sites like twitter, Facebook are made with PHP language. For this we are also want to make one tutorial on creating social networking websites in PHP.

Due to Social networking sites we have seen it has changed the lifestyles of millions of people on earth. Most of the person have been stay online with their favorite social networking sites like Facebook, Twitter, YouTube LinkedIn etc with different devices like Desktop computer, Laptop, Tablet or even with Mobile phone. So, we have to build Social Networking sites that can be easily open any web devices which can access internet. We have seen most of the Social networking sites have been do process on web page that means if we have share something on social networking sites then it has been process our data without refresh of web page, because most of the social networking sites have been used Ajax jQuery and CSS3 for front end operation and it has been increase user experience. Now in your mind how Ajax increase user experience of your websites, then suppose user has upload their profile picture then image will be uploaded without refresh of web page. So without refresh whole page data it will upload image on server and it will increase feel of each web page of social networking sites.

This tutorial we have mainly made for PHP learner who want to learn how can we building a social networking sites in PHP language. Even final student who want to search project idea about their project then they can also use this tutorial for their college purpose also. This is because here they can get complete step by step guide for how to build social network website from scratch in PHP using Mysql database. Here they can also get complete source code with every module video tutorial also.

In this tutorial, for login and signup feature, we have use complete source code of our previous tutorial on how to make User Login and Registration system with email verification by using OTP method in PHP. So if you not seen that tutorial, so first check that tutorial for login and signup module, because in this tutorial we will not cover again login and sign up process. So for Login and Registration process you have to follow our previous tutorial.




Features


  1. User can sign up with Email Verification using OTP
  2. User can resend Email Verification Email
  3. User can Login using OTP Authentication
  4. User can Reset Password using OTP Method
  5. User Initial Avatar Generate
  6. User can edit Profile data
  7. AutoComplete Friends Search Box
  8. Display Friends Search using Ajax with Pagination

Software Requirement


Front End


  1. Ajax Technology
  2. jQuery Library
  3. Bootstrap Library
  4. Javascript
  5. Bootstrap DatePicker Plugin
  6. CSS3
  7. HTML 5

Back-end


  1. PHP 5.6
  2. Mysql Database
  3. PHP PDO Extension




Mysql Database


First you have to create one database in your local PHPMyAdmin and then after you have to run following sql script for create initial table for this social networking sites. This is only initial table, we will add another table after creating video tutorial on that topic. So on every publish of tutorial you have to check this mysql database section also for new table or new field in table.


--
-- Database: `testing`
--

-- --------------------------------------------------------

--
-- Table structure for table `login_data`
--

CREATE TABLE `login_data` (
  `login_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `login_otp` int(6) NOT NULL,
  `last_activity` datetime NOT NULL,
  `login_datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Table structure for table `register_user`
--

CREATE TABLE `register_user` (
  `register_user_id` int(11) NOT NULL,
  `user_name` varchar(250) NOT NULL,
  `user_email` varchar(250) NOT NULL,
  `user_password` varchar(250) NOT NULL,
  `user_activation_code` varchar(250) NOT NULL,
  `user_email_status` enum('not verified','verified') NOT NULL,
  `user_otp` int(11) NOT NULL,
  `user_datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `user_avatar` varchar(100) NOT NULL,
  `user_birthdate` date NOT NULL,
  `user_gender` enum('Male','Female') NOT NULL,
  `user_address` text NOT NULL,
  `user_city` varchar(250) NOT NULL,
  `user_zipcode` varchar(30) NOT NULL,
  `user_state` varchar(250) NOT NULL,
  `user_country` varchar(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `login_data`
--
ALTER TABLE `login_data`
  ADD PRIMARY KEY (`login_id`);

--
-- Indexes for table `register_user`
--
ALTER TABLE `register_user`
  ADD PRIMARY KEY (`register_user_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `login_data`
--
ALTER TABLE `login_data`
  MODIFY `login_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;

--
-- AUTO_INCREMENT for table `register_user`
--
ALTER TABLE `register_user`
  MODIFY `register_user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=28;
  
--
-- Table structure for table `friend_request`
--

CREATE TABLE `friend_request` (
  `request_id` int(11) NOT NULL,
  `request_from_id` int(11) NOT NULL,
  `request_to_id` int(11) NOT NULL,
  `request_status` enum('Pending','Confirm','Reject') NOT NULL,
  `request_notification_status` enum('No','Yes') NOT NULL,
  `request_datetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `friend_request`
--
ALTER TABLE `friend_request`
  ADD PRIMARY KEY (`request_id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `friend_request`
--
ALTER TABLE `friend_request`
  MODIFY `request_id` int(11) NOT NULL AUTO_INCREMENT;









Source Code


database_connection.php



<?php

//database_connection.php

$connect = new PDO("mysql:host=localhost;dbname=testing", "root", "");

?>


index.php



<?php

//index.php

//error_reporting(E_ALL);

session_start();

if(isset($_SESSION["user_id"]))
{
 header("location:home.php");
}

include('function.php');

$connect = new PDO("mysql:host=localhost; dbname=testing", "root", "");

$message = '';
$error_user_name = '';
$error_user_email = '';
$error_user_password = '';
$user_name = '';
$user_email = '';
$user_password = '';

if(isset($_POST["register"]))
{
 if(empty($_POST["user_name"]))
 {
  $error_user_name = "<label class='text-danger'>Enter Name</label>";
 }
 else
 {
  $user_name = trim($_POST["user_name"]);
  $user_name = htmlentities($user_name);
 }

 if(empty($_POST["user_email"]))
 {
  $error_user_email = '<label class="text-danger">Enter Email Address</label>';
 }
 else
 {
  $user_email = trim($_POST["user_email"]);
  if(!filter_var($user_email, FILTER_VALIDATE_EMAIL))
  {
   $error_user_email = '<label class="text-danger">Enter Valid Email Address</label>';
  }
 }

 if(empty($_POST["user_password"]))
 {
  $error_user_password = '<label class="text-danger">Enter Password</label>';
 }
 else
 {
  $user_password = trim($_POST["user_password"]);
  $user_password = password_hash($user_password, PASSWORD_DEFAULT);
 }

 if($error_user_name == '' && $error_user_email == '' && $error_user_password == '')
 {
  $user_activation_code = md5(rand());

  $user_otp = rand(100000, 999999);

  $data = array(
   ':user_name'  => $user_name,
   ':user_email'  => $user_email,
   ':user_password' => $user_password,
   ':user_activation_code' => $user_activation_code,
   ':user_email_status'=> 'not verified',
   ':user_otp'   => $user_otp
  );

  $query = "
  INSERT INTO register_user 
  (user_name, user_email, user_password, user_activation_code, user_email_status, user_otp)
  SELECT * FROM (SELECT :user_name, :user_email, :user_password, :user_activation_code, :user_email_status, :user_otp) AS tmp
  WHERE NOT EXISTS (
      SELECT user_email FROM register_user WHERE user_email = :user_email
  ) LIMIT 1
  ";

  $statement = $connect->prepare($query);

  $statement->execute($data);

  if($connect->lastInsertId() == 0)
  {
   $message = '<label class="text-danger">Email Already Register</label>';
  } 
  else
  {
   $user_avatar = make_avatar(strtoupper($user_name[0]));

   $query = "
   UPDATE register_user 
   SET user_avatar = '".$user_avatar."' 
   WHERE register_user_id = '".$connect->lastInsertId()."'
   ";

   $statement = $connect->prepare($query);

   $statement->execute();

   //print_r(error_get_last());
   
   //echo ("hi");


   require 'class/class.phpmailer.php';
   $mail = new PHPMailer;
   $mail->IsSMTP();
   $mail->Host = 'smtpout.secureserver.net';
   $mail->Port = '80';
   $mail->SMTPAuth = true;
   $mail->Username = 'xxxxx';
   $mail->Password = 'xxxxx';
   $mail->SMTPSecure = '';
   $mail->From = 'tutorial@webslesson.info';
   $mail->FromName = 'Webslesson';
   $mail->AddAddress($user_email);
   $mail->WordWrap = 50;
   $mail->IsHTML(true);
   $mail->Subject = 'Verification code for Verify Your Email Address';

   $message_body = '
   <p>For verify your email address, enter this verification code when prompted: <b>'.$user_otp.'</b>.</p>
   <p>Sincerely,</p>
   <p>Webslesson.info</p>
   ';
   $mail->Body = $message_body;

   if($mail->Send())
   {
    echo '<script>alert("Please Check Your Email for Verification Code")</script>';

    header('location:email_verify.php?code='.$user_activation_code);
   }
   else
   {
    $message = $mail->ErrorInfo;
   }
  }

 }
}

?>
<!DOCTYPE html>
<html>
 <head>
  <title>Resend Email Verification OTP in PHP Registration</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="http://code.jquery.com/jquery.js"></script>
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
 </head>
 <body>
  <br />
  <div class="container">
   <h3 align="center">Resend Email Verification OTP in PHP Registration</h3>
   <br />
   <div class="panel panel-default">
    <div class="panel-heading">
     <h3 class="panel-title">Registration</h3>
    </div>
    <div class="panel-body">
     <?php echo $message; ?>
     <form method="post">
      <div class="form-group">
       <label>Enter Your Name</label>
       <input type="text" name="user_name" class="form-control" />
       <?php echo $error_user_name; ?>
      </div>
      <div class="form-group">
       <label>Enter Your Email</label>
       <input type="text" name="user_email" class="form-control" />
       <?php echo $error_user_email; ?>
      </div>
      <div class="form-group">
       <label>Enter Your Password</label>
       <input type="password" name="user_password" class="form-control" />
       <?php echo $error_user_password; ?>
      </div>
      <div class="form-group">
       <input type="submit" name="register" class="btn btn-success" value="Click to Register" />&nbsp;&nbsp;&nbsp;
       <a href="resend_email_otp.php" class="btn btn-default">Resend OTP</a>
       &nbsp;&nbsp;&nbsp;
       <a href="login.php">Login</a>
      </div>
     </form>
    </div>
   </div>
  </div>
  <br />
  <br />
 </body>
</html>





email_verify.php



<?php

//email_verify.php

$connect = new PDO("mysql:host=localhost;dbname=testing", "root", "");

$error_user_otp = '';
$user_activation_code = '';
$message = '';

if(isset($_GET["code"]))
{
 $user_activation_code = $_GET["code"];

 if(isset($_POST["submit"]))
 {
  if(empty($_POST["user_otp"]))
  {
   $error_user_otp = 'Enter OTP Number';
  }
  else
  {
   $query = "
   SELECT * FROM register_user 
   WHERE user_activation_code = '".$user_activation_code."' 
   AND user_otp = '".trim($_POST["user_otp"])."'
   ";

   $statement = $connect->prepare($query);

   $statement->execute();

   $total_row = $statement->rowCount();

   if($total_row > 0)
   {
    $query = "
    UPDATE register_user 
    SET user_email_status = 'verified' 
    WHERE user_activation_code = '".$user_activation_code."'
    ";

    $statement = $connect->prepare($query);

    if($statement->execute())
    {
     header('location:login.php?register=success');
    }
   }
   else
   {
    $message = '<label class="text-danger">Invalid OTP Number</label>';
   }
  }
 }
}
else
{
 $message = '<label class="text-danger">Invalid Url</label>';
}

?>
<!DOCTYPE html>
<html>
 <head>
  <title>Resend Email Verification OTP in PHP Registration</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="http://code.jquery.com/jquery.js"></script>
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
 </head>
 <body>
  <br />
  <div class="container">
   <h3 align="center">Resend Email Verification OTP in PHP Registration</h3>
   <br />
   <div class="panel panel-default">
    <div class="panel-heading">
     <h3 class="panel-title">Enter OTP Number</h3>
    </div>
    <div class="panel-body">
     <?php echo $message; ?>
     <form method="POST">
      <div class="form-group">
       <label>Enter OTP Number</label>
       <input type="text" name="user_otp" class="form-control" />
       <?php echo $error_user_otp; ?>
      </div>
      <div class="form-group">
       <input type="submit" name="submit" class="btn btn-success" value="Submit" />
      </div>
     </form>
    </div>
   </div>
  </div>
  <br />
  <br />
 </body>
</html>


login.php



<?php

session_start();

if(isset($_SESSION["user_id"]))
{
 header("location:home.php");
}

?>

<!DOCTYPE html>
<html>
 <head>
  <title>PHP Login with OTP Authentication</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="http://code.jquery.com/jquery.js"></script>
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
 </head>
 <body>
  <br />
  <div class="container">
   <h3 align="center">How to Make Initial Avatar Image in PHP After Registration</h3>
   <br />

   <?php
   if(isset($_GET["register"]))
   {
    if($_GET["register"] == 'success')
    {
     echo '
     <h1 class="text-success">Email Successfully verified, Registration Process Completed...</h1>
     ';
    }
   }

   if(isset($_GET["reset_password"]))
   {
    if($_GET["reset_password"] == 'success')
    {
     echo '<h1 class="text-success">Password change Successfully, Now you can login with your new password</h1>';
    }
   }
   ?>

   <div class="row">
    <div class="col-md-3">&nbsp;</div>
    <div class="col-md-6">
     <div class="panel panel-default">
      <div class="panel-heading">
       <h3 class="panel-title">Login</h3>
      </div>
      <div class="panel-body">
       <form method="POST" id="login_form">
        <div class="form-group" id="email_area">
         <label>Enter Email Address</label>
         <input type="text" name="user_email" id="user_email" class="form-control" />
         <span id="user_email_error" class="text-danger"></span>
        </div>
        <div class="form-group" id="password_area" style="display:none;">
         <label>Enter password</label>
         <input type="password" name="user_password" id="user_password" class="form-control" />
         <span id="user_password_error" class="text-danger"></span>
        </div>
        <div class="form-group" id="otp_area" style="display:none;">
         <label>Enter OTP Number</label>
         <input type="text" name="user_otp" id="user_otp" class="form-control" />
         <span id="user_otp_error" class="text-danger"></span>
        </div>
        <div class="form-group" align="right">
         <input type="hidden" name="action" id="action" value="email" />
         <input type="submit" name="next" id="next" class="btn btn-primary" value="Next" />
        </div>
       </form>
      </div>
     </div>
     <div align="center">
      <b><a href="forget_password.php?step1=1">Forgot Password</a></b>
     </div>
    </div>
   </div>
   
  </div>
  <br />
  <br />
 </body>
</html>

<script>

$(document).ready(function(){
 $('#login_form').on('submit', function(event){
  event.preventDefault();
  var action = $('#action').val();
  $.ajax({
   url:"login_verify.php",
   method:"POST",
   data:$(this).serialize(),
   dataType:"json",
   beforeSend:function()
   {
    $('#next').attr('disabled', 'disabled');
   },
   success:function(data)
   {
    $('#next').attr('disabled', false);
    if(action == 'email')
    {
     if(data.error != '')
     {
      $('#user_email_error').text(data.error);
     }
     else
     {
      $('#user_email_error').text('');
      $('#email_area').css('display', 'none');
      $('#password_area').css('display', 'block');
     }
    }
    else if(action == 'password')
    {
     if(data.error != '')
     {
      $('#user_password_error').text(data.error);
     }
     else
     {
      $('#user_password_error').text('');
      $('#password_area').css('display', 'none');
      $('#otp_area').css('display', 'block');
     }
    }
    else
    {
     if(data.error != '')
     {
      $('#user_otp_error').text(data.error);
     }
     else
     {
      window.location.replace("home.php");
     }
    }

    $('#action').val(data.next_action);
   }
  })
 });
});

</script>


login_verify.php



<?php

//login_verify.php



$connect = new PDO("mysql:host=localhost;dbname=testing", "root", "");

session_start();

$error = '';

$next_action = '';

sleep(2);

if(isset($_POST["action"]))
{
 if($_POST["action"] == 'email')
 {
  if($_POST["user_email"] != '')
  {
   $data = array(
    ':user_email' => $_POST["user_email"]
   );

   $query = "
   SELECT * FROM register_user 
   WHERE user_email = :user_email
   ";

   $statement = $connect->prepare($query);

   $statement->execute($data);

   $total_row = $statement->rowCount();

   if($total_row == 0)
   {
    $error = 'Email Address not found';
    $next_action = 'email';
   }
   else
   {
    $result = $statement->fetchAll();
    foreach($result as $row)
    {
     if($row["user_email_status"] == 'verified')
     {
      $_SESSION['register_user_id'] = $row['register_user_id'];
      $_SESSION['user_name'] = $row['user_name'];
      $_SESSION['user_email'] = $row['user_email'];
      $_SESSION['user_password'] = $row['user_password'];
      $next_action = 'password';
     }
     else
     {
      $error = 'Email Address is not verified, first verify your email address';
      $next_action = 'email';
     }
    }    
   }
  }
  else
  {
   $error = 'Email Address is Required';

   $next_action = 'email';
  }
 }

 if($_POST["action"] == 'password')
 {
  if($_POST["user_password"] != '')
  {
   if(password_verify($_POST["user_password"], $_SESSION["user_password"]))
   {
    $login_otp = rand(100000,999999);

    $data = array(
     ':user_id'  => $_SESSION["register_user_id"],
     ':login_otp' => $login_otp,
     ':last_activity'=> date('d-m-y h:i:s')
    );

    $query = "
    INSERT INTO login_data 
    (user_id, login_otp, last_activity) 
    VALUES (:user_id, :login_otp, :last_activity)
    ";

    $statement = $connect->prepare($query);

    if($statement->execute($data))
    {
     $_SESSION['login_id'] = $connect->lastInsertId();
     $_SESSION['login_otp'] = $login_otp;

     require 'class/class.phpmailer.php';

     $mail = new PHPMailer;

     $mail->IsSMTP();

     $mail->Host = 'smtpout.secureserver.net';

     $mail->Port = '80';

     $mail->SMTPAuth = true;

     $mail->Username = 'xxxxxxxxx';
     $mail->Password = 'xxxxxxxxx';

     $mail->SMTPSecure = '';

     $mail->From = 'tutorial@webslesson.info';

     $mail->FromName = 'Webslesson';

     $mail->AddAddress($_SESSION["user_email"]);

     $mail->WordWrap = 50;

     $mail->IsHTML(true);

     $mail->Subject = 'Verification code for Login';

     $message_body = '
     <p>For verify your login details, enter this verification code when prompted: <b>'.$login_otp.'</b>.</p>
     <p>Sincerely,</p>
     <p>Webslesson.info</p>
     ';

     $mail->Body = $message_body;

     if($mail->Send())
     {
      $next_action = 'otp';
     }
     else
     {
      $error = '<label class="text-danger">'.$mail->ErrorInfo.'</label>';
      $next_action = 'password';
     }
    }
   }
   else
   {
    $error = 'Wrong Password';
    $next_action = 'password';
   }
  }
  else
  {
   $error = 'Password is Required';
   $next_action = 'password';
  }
 }

 if($_POST["action"] == "otp")
 {
  if($_POST["user_otp"] != '')
  {
   if($_SESSION['login_otp'] == $_POST["user_otp"])
   {
    $_SESSION['user_id'] = $_SESSION['register_user_id'];
    unset($_SESSION["register_user_id"]);
    unset($_SESSION["user_email"]);
    unset($_SESSION["user_password"]);
    unset($_SESSION["login_otp"]);
   }
   else
   {
    $error = 'Wrong OTP Number';
    $next_action = 'otp';
   }
  }
  else
  {
   $error = 'OTP Number is required';
   $next_action = 'otp';
  }
 }





 $output = array(
  'error'   => $error,
  'next_action' => $next_action
 );

 echo json_encode($output);
}


?>


logout.php



<?php

//logout.php

session_start();

session_destroy();

header("location:login.php");

?>


resend_email_otp.php



<?php

//resend_email_otp.php

include('database_connection.php');

$message = '';

session_start();

if(isset($_SESSION["user_id"]))
{
 header("location:home.php");
}

if(isset($_POST["resend"]))
{
 if(empty($_POST["user_email"]))
 {
  $message = '<div class="alert alert-danger">Email Address is required</div>';
 }
 else
 {
  $data = array(
   ':user_email' => trim($_POST["user_email"])
  );

  $query = "
  SELECT * FROM register_user 
  WHERE user_email = :user_email
  ";

  $statement = $connect->prepare($query);

  $statement->execute($data);

  if($statement->rowCount() > 0)
  {
   $result = $statement->fetchAll();
   foreach($result as $row)
   {
    if($row["user_email_status"] == 'verified')
    {
     $message = '<div class="alert alert-info">Email Address already verified, you can login into system</div>';
    }
    else
    {
     require 'class/class.phpmailer.php';
     $mail = new PHPMailer;
     $mail->IsSMTP();
     $mail->Host = 'smtpout.secureserver.net';
     $mail->Port = '80';
     $mail->SMTPAuth = true;
     $mail->Username = 'xxxxxxx';
     $mail->Password = 'xxxxxxx';
     $mail->SMTPSecure = '';
     $mail->From = 'tutorial@webslesson.info';
     $mail->FromName = 'Webslesson';
     $mail->AddAddress($row["user_email"]);
     $mail->WordWrap = 50;
     $mail->IsHTML(true);
     $mail->Subject = 'Verification code for Verify Your Email Address';
     $message_body = '
     <p>For verify your email address, enter this verification code when prompted: <b>'.$row["user_otp"].'</b>.</p>
     <p>Sincerely,</p>
     ';
     $mail->Body = $message_body;

     if($mail->Send())
     {
      echo '<script>alert("Please Check Your Email for Verification Code")</script>';
      echo '<script>window.location.replace("email_verify.php?code='.$row["user_activation_code"].'");</script>';
     }
     else
     {

     }
    }
   }
  }
  else
  {
   $message = '<div class="alert alert-danger">Email Address not found in our record</div>';
  }
 }
}

?>

<!DOCTYPE html>
<html>
 <head>
  <title>Resend Email Verification OTP in PHP Registration</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="http://code.jquery.com/jquery.js"></script>
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
 </head>
 <body>
  <br />
  <div class="container">
   <h3 align="center">Resend Email Verification OTP in PHP Registration</h3>
   <br />
   <div class="panel panel-default">
    <div class="panel-heading">
     <h3 class="panel-title">Resend Email Verification OTP</h3>
    </div>
    <div class="panel-body">
     <?php echo $message; ?>
     <form method="post">
      <div class="form-group">
       <label>Enter Your Email</label>
       <input type="email" name="user_email" class="form-control" />
      </div>
      <div class="form-group">
       <input type="submit" name="resend" class="btn btn-success" value="Send" />
      </div>
     </form>
    </div>
   </div>
  </div>
  <br />
  <br />
 </body>
</html>





forget_password.php



<?php

//forget_password.php

include('database_connection.php');

$message = '';

session_start();

if(isset($_SESSION["user_id"]))
{
 header("location:home.php");
}

if(isset($_POST["submit"]))
{
 if(empty($_POST["user_email"]))
 {
  $message = '<div class="alert alert-danger">Email Address is required</div>';
 }
 else
 {
  $data = array(
   ':user_email' => trim($_POST["user_email"])
  );

  $query = "
  SELECT * FROM register_user 
  WHERE user_email = :user_email
  ";

  $statement = $connect->prepare($query);

  $statement->execute($data);

  if($statement->rowCount() > 0)
  {
   $result = $statement->fetchAll();

   foreach($result as $row)
   {
    if($row["user_email_status"] == 'not verified')
    {
     $message = '<div class="alert alert-info">Your Email Address is not verify, so first verify your email address by click on this <a href="resend_email_otp.php">link</a></div>';
    }
    else
    {
     $user_otp = rand(100000, 999999);

     $sub_query = "
     UPDATE register_user 
     SET user_otp = '".$user_otp."' 
     WHERE register_user_id = '".$row["register_user_id"]."'
     ";

     $connect->query($sub_query);

     require 'class/class.phpmailer.php';

     $mail = new PHPMailer;

     $mail->IsSMTP();

     $mail->Host = 'smtpout.secureserver.net';

     $mail->Port = '80';

     $mail->SMTPAuth = true;

     $mail->Username = 'tutorial@webslesson.info';

     $mail->Password = 'password';

     $mail->SMTPSecure = '';

     $mail->From = 'tutorial@webslesson.info';

     $mail->FromName = 'Webslesson';

     $mail->AddAddress($row["user_email"]);

     $mail->IsHTML(true);

     $mail->Subject = 'Password reset request for your account';

     $message_body = '
     <p>For reset your password, you have to enter this verification code when prompted: <b>'.$user_otp.'</b>.</p>
     <p>Sincerely,</p>
     ';

     $mail->Body = $message_body;

     if($mail->Send())
     {
      echo '<script>alert("Please Check Your Email for password reset code")</script>';

      echo '<script>window.location.replace("forget_password.php?step2=1&code=' . $row["user_activation_code"] . '")</script>';
     }
    }
   }
  }
  else
  {
   $message = '<div class="alert alert-danger">Email Address not found in our record</div>';
  }
 }
}

if(isset($_POST["check_otp"]))
{
 if(empty($_POST["user_otp"]))
 {
  $message = '<div class="alert alert-danger">Enter OTP Number</div>';
 }
 else
 {
  $data = array(
   ':user_activation_code'  => $_POST["user_code"],
   ':user_otp'     => $_POST["user_otp"]
  );

  $query = "
  SELECT * FROM register_user 
  WHERE user_activation_code = :user_activation_code 
  AND user_otp = :user_otp
  ";

  $statement = $connect->prepare($query);

  $statement->execute($data);

  if($statement->rowCount() > 0)
  {
   echo '<script>window.location.replace("forget_password.php?step3=1&code=' . $_POST["user_code"] . '")</script>';
  }
  else
  {
   $message = '<div class="alert alert-danger">Wrong OTP Number</div>';
  }
 }
}

if(isset($_POST["change_password"]))
{
 $new_password = $_POST["user_password"];
 $confirm_password = $_POST["confirm_password"];

 if($new_password == $confirm_password)
 {
  $query = "
  UPDATE register_user 
  SET user_password = '".password_hash($new_password, PASSWORD_DEFAULT)."' 
  WHERE user_activation_code = '".$_POST["user_code"]."'
  ";

  $connect->query($query);

  echo '<script>window.location.replace("login.php?reset_password=success")</script>';
 }
 else
 {
  $message = '<div class="alert alert-danger">Confirm Password is not match</div>';
 }
}

?>

<!DOCTYPE html>
<html>
 <head>
  <title>Forgot Password script in PHP using OTP</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="http://code.jquery.com/jquery.js"></script>
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
 </head>
 <body>
  <br />
  <div class="container">
   <h3 align="center">Forgot Password script in PHP using OTP</h3>
   <br />
   <div class="panel panel-default">
    <div class="panel-heading">
     <h3 class="panel-title">Forgot Password script in PHP using OTP</h3>
    </div>
    <div class="panel-body">
     <?php

     echo $message;

     if(isset($_GET["step1"]))
     {
     ?>
     <form method="post">
      <div class="form-group">
       <label>Enter Your Email</label>
       <input type="text" name="user_email" class="form-control" />
      </div>
      <div class="form-group">
       <input type="submit" name="submit" class="btn btn-success" value="Send" />
      </div>
     </form>
     <?php
     }
     if(isset($_GET["step2"], $_GET["code"]))
     {
     ?>
     <form method="POST">
      <div class="form-group">
       <label>Enter OTP Number</label>
       <input type="text" name="user_otp" class="form-control" />
      </div>
      <div class="form-group">
       <input type="hidden" name="user_code" value="<?php echo $_GET["code"]; ?>" />
       <input type="submit" name="check_otp" class="btn btn-success" value="Send" />
      </div>
     </form>
     <?php
     }

     if(isset($_GET["step3"], $_GET["code"]))
     {
     ?>
     <form method="post">
      <div class="form-group">
       <label>Enter New Password</label>
       <input type="password" name="user_password" class="form-control" />
      </div>
      <div class="form-group">
       <label>Enter Confirm Password</label>
       <input type="password" name="confirm_password" class="form-control" />
      </div>
      <div class="form-group">
       <input type="hidden" name="user_code" value="<?php echo $_GET["code"]; ?>" />
       <input type="submit" name="change_password" class="btn btn-success" value="Change" />
      </div>
     </form>
     <?php 
     }
     ?>
    </div>
   </div>
  </div>
  <br />
  <br />
 </body>
</html>


header.php



<?php

//header.php

session_start();

if(!isset($_SESSION["user_id"]))
{
 header('location:login.php');
}

include('database_connection.php');

include('function.php');


if(isset($_POST["searchBtn"]))
{
 $search_query = preg_replace("#[^a-z 0-9?!]#i", "", $_POST["searchbar"]);

 header('location:search.php?query='.urlencode($search_query).'');
}


?>
<!DOCTYPE html>
<html>
 <head>
  <title>Make Social Network System in PHP Mysql using Ajax jQuery</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <script src="http://code.jquery.com/jquery.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
     <script src="asset/js/bootstrap-datepicker.js"></script>
     <script src="asset/js/bootstrap-datepicker.en-GB.min.js"></script>
     <link rel="stylesheet" href="asset/css/bootstrap-datepicker.css">
     <style>

      .wrapper-preview
      {
       padding: 50px;
       background: #fff;
       box-shadow: 0 1px 4px rgba(0,0,0,.25);
       border-radius: 10px;
       text-align:center;
      }

      .wrapper-box
      {
       padding: 20px;
       margin-bottom: 20px;
       background: #fff;
       box-shadow: 0 1px 4px rgba(0,0,0,.25);
       border-radius: 10px;
      }

      .wrapper-box-title
      {
       font-size: 20px;
       line-height: 100%;
       color: #000;
       padding-bottom: 8px;
      }

      .wrapper-box-description
      {
       font-size: 14px;
       line-height: 120%;
       color: #000;
      }

     </style>
 </head>
 <body vlink="#385898" alink="#385898" style="background-color: #f5f6fa">
  <nav class="navbar navbar-default">
     <div class="container-fluid">
       <div class="navbar-header">
          <a class="navbar-brand" href="home.php">Webslesson</a>
       </div>
       
       <form class="navbar-form navbar-left" method="post">
        <div class="input-group">
         <input type="text" class="form-control" id="searchbar" name="searchbar" placeholder="Search" autocomplete="off" />
         <div class="input-group-btn">
          <button class="btn btn-default" type="submit" name="searchBtn" id="searchBtn">
           <i class="glyphicon glyphicon-search"></i>
          </button>
         </div>
        </div>

        <div class="countryList" style="position: absolute;width: 235px;z-index: 1001;"></div>
       </form>

       <ul class="nav navbar-nav navbar-right">
        <li><a href="profile.php?action=view"><?php echo Get_user_avatar($_SESSION["user_id"], $connect); ?> <b>Profile</b></a></li>
        <li><a href="logout.php"><span class="glyphicon glyphicon-log-in"></span> Logout</a></li>
       </ul>
     </div>
  </nav>
  <div class="container">


home.php



<?php

//home.php

include('header.php');

?>
   <div class="row">
    <div class="col-md-9">
     <div class="panel panel-default">
      <div class="panel-heading">
       <h3 class="panel-title">User Timeline</h3>
      </div>
      <div class="panel-body">
       <h1 align="center">Welcome <?php echo $_SESSION["user_name"]; ?></h1>
      </div>
     </div>
    </div>
    <div class="col-md-3">
     <div class="panel panel-default">
      <div class="panel-heading">
       <h3 class="panel-title">User Details</h3>
      </div>
      <div class="panel-body">
       <div align="center">
        
       </div>
      </div>
     </div>
    </div>
   </div>
<?php

include('footer.php');

?>


profile.php



<?php

//profile.php

include('header.php');

$message = '';

if(isset($_POST["edit"]))
{
 if(empty($_POST["user_name"]))
 {
  $message = '<div class="alert alert-danger">Name is required</div>';
 }
 else
 {
  if(isset($_FILES["user_avatar"]["name"]))
  {
   if($_FILES["user_avatar"]["name"] != '')
   {
    $image_name = $_FILES["user_avatar"]["name"];

    $valid_extensions = array('jpg', 'jpeg', 'png');

    $extension = pathinfo($image_name, PATHINFO_EXTENSION);

    if(in_array($extension, $valid_extensions))
    {
     $upload_path = 'avatar/' . time() . '.' . $extension;
     if(move_uploaded_file($_FILES["user_avatar"]["tmp_name"], $upload_path))
     {
      $user_avatar = $upload_path;
     }
    }
    else
    {
     $message .= '<div class="alert alert-danger">Only .jpg, .jpeg and .png Image allowed to upload</div>';
    }
   }
   else
   {
    $user_avatar = $_POST["hidden_user_avatar"];
   }
  }
  else
  {
   $user_avatar = $_POST["hidden_user_avatar"];
  }

  if($message == '')
  {
   $data = array(
    ':user_name'    => $_POST["user_name"],
    ':user_avatar'   => $user_avatar,
    ':user_birthdate'  => $_POST["user_birthdate"],
    ':user_gender'   => $_POST["user_gender"],
    ':user_address'   => $_POST["user_address"],
    ':user_city'    => $_POST["user_city"],
    ':user_zipcode'   => $_POST["user_zipcode"],
    ':user_state'    => $_POST["user_state"],
    ':user_country'   => $_POST["user_country"],
    ':register_user_id' => $_POST["register_user_id"]
   );

   $query = "
   UPDATE register_user 
   SET user_name = :user_name, 
   user_avatar = :user_avatar, 
   user_birthdate = :user_birthdate, 
   user_gender = :user_gender, 
   user_address = :user_address, 
   user_city = :user_city, 
   user_zipcode = :user_zipcode, 
   user_state = :user_state, 
   user_country = :user_country 
   WHERE register_user_id = :register_user_id
   ";

   $statement = $connect->prepare($query);

   $statement->execute($data);

   header("location:profile.php?action=view&success=1");
  }
 }
}

?>

<div class="row">
 <div class="col-md-9">
 <?php
 if(isset($_GET["action"]))
 {
  if($_GET["action"] == "view")
  {
   if(isset($_GET["success"]))
   {
    echo '
    <div class="alert alert-success">Profile Edited Successfully</div>
    ';
   }
 ?>
  <div class="panel panel-default">
   <div class="panel-heading">
    <div class="row">
     <div class="col-md-9">
      <h3 class="panel-title">Profile Details</h3>
     </div>
     <div class="col-md-3" align="right">
      <a href="profile.php?action=edit" class="btn btn-success btn-xs">Edit</a>
     </div>
    </div>
   </div>
   <div class="panel-body">
    <?php
    echo Get_user_profile_data_html($_SESSION["user_id"], $connect);
    ?>
   </div>
  </div>
 <?php
  }

  if($_GET["action"] == 'edit')
  {
   $result = Get_user_profile_data($_SESSION["user_id"], $connect);

   foreach($result as $row)
   {
 ?>
  <script>
  $(document).ready(function(){

   $('#user_gender').val("<?php echo $row["user_gender"]; ?>");

   $('#user_country').val("<?php echo $row["user_country"]; ?>");

   $('#user_birthdate').datepicker({
    assumeNearbyYear: true,
    format:'yyyy-mm-dd'
   });
  });
  </script>
  <div class="panel panel-default">
   <div class="panel-heading">
    <div class="row">
     <div class="col-md-9">
      <h3 class="panel-title">Edit Profile</h3>
     </div>
     <div class="col-md-3" align="right">
      <a href="profile.php?action=view" class="btn btn-primary btn-xs">View</a>
     </div>
    </div>
   </div>
   <div class="panel-body">
    <?php
    echo $message;
    ?>
    <form method="post" enctype="multipart/form-data">
     <div class="form-group">
      <div class="row">
       <label class="col-md-4" align="right">Name</label>
       <div class="col-md-8">
        <input type="text" name="user_name" id="user_name" class="form-control" value="<?php echo $row["user_name"];  ?>" />
       </div>
      </div>
     </div>
     <div class="form-group">
      <div class="row">
       <label class="col-md-4" align="right">Date of Birth</label>
       <div class="col-md-8">
        <input type="text" name="user_birthdate" id="user_birthdate"  class="form-control" readonly value="<?php echo $row["user_birthdate"]; ?>" />
       </div>
      </div>
     </div>
     <div class="form-group">
      <div class="row">
       <label class="col-md-4" align="right">Gender</label>
       <div class="col-md-8">
        <select name="user_gender" id="user_gender" class="form-control">
         <option value="Male">Male</option>
         <option value="Female">Female</option>
        </select>
       </div>
      </div>
     </div>
     <div class="form-group">
      <div class="row">
       <label class="col-md-4" align="right">Address</label>
       <div class="col-md-8">
        <input type="text" name="user_address" id="user_address" class="form-control" value="<?php echo $row["user_address"]; ?>" />
       </div>
      </div>
     </div>
     <div class="form-group">
      <div class="row">
       <label class="col-md-4" align="right">City</label>
       <div class="col-md-8">
        <input type="text" name="user_city" id="user_city" class="form-control" value="<?php echo $row["user_city"];  ?>" />
       </div>
      </div>
     </div>
     <div class="form-group">
      <div class="row">
       <label class="col-md-4" align="right">Zipcode</label>
       <div class="col-md-8">
        <input type="text" name="user_zipcode" id="user_zipcode" class="form-control" value="<?php echo $row["user_zipcode"]; ?>" />
       </div>
      </div>
     </div>
     <div class="form-group">
      <div class="row">
       <label class="col-md-4" align="right">State</label>
       <div class="col-md-8">
        <input type="text" name="user_state" id="user_state" class="form-control" value="<?php echo $row["user_state"]; ?>" />
       </div>
      </div>
     </div>
     <div class="form-group">
      <div class="row">
       <label class="col-md-4" align="right">Country</label>
       <div class="col-md-8">
        <select name="user_country" id="user_country" class="form-control">
         <option value="">Select Country</option>
         <?php 

         echo load_country_list();

         ?>
        </select>
       </div>
      </div>
     </div>
     <div class="form-group">
      <div class="row">
       <label class="col-md-4" align="right">Profile</label>
       <div class="col-md-8">
        <input type="file" name="user_avatar" />
        <br />
        <?php
        Get_user_avatar($row["register_user_id"], $connect);
        ?>
        <br />
        <input type="hidden" name="hidden_user_avatar" value="<?php echo $row["user_avatar"]; ?>" />
        <br />
       </div>
      </div>
     </div>
     <div class="form-group" align="center">
      <input type="hidden" name="register_user_id" value="<?php echo $row["register_user_id"]; ?>" />
      <input type="submit" name="edit" class="btn btn-primary" value="Edit" />
     </div>
    </form>
   </div>
  </div>
 <?php
   }
  }
 }
 ?>

 </div>
 <div class="col-md-3">

 </div>
</div>

<?php

include('footer.php');

?>


footer.php



  </div>
  <br />
  <br />
 </body>
</html>

<style>



</style>

<script>

$(document).ready(function(){

 $('#searchbar').keyup(function(){

  var query = $(this).val();
  if(query != '')
  {
   $.ajax({
    url:"search_action.php",
    method:"POST",
    data:{query:query},
    success:function(data)
    {
     $('.countryList').html(data);
    }
   });
  }
  else
  {
   $('.countryList').html('');
  }

 });

 $(document).on('click', '.list-group-item', function(){
  $('#searchbar').val($.trim($(this).text()));
  //$('#countryList').fadeOut();
  $('.countryList').html('');

 });

});

</script>


search_action.php



<?php

//search_action.php

include('database_connection.php');

include('function.php');

session_start();

if(isset($_POST["query"]))
{
 $search_query = preg_replace('#[^a-z 0-9?!]#i', '', $_POST["query"]);

 $search_array = explode(" ", $search_query);

 $replace_array = array_map('wrap_tag', $search_array);

 $condition = '';

 foreach($search_array as $search)
 {
  if(trim($search) != '')
  {
   $condition .= "user_name LIKE '%".$search."%' OR ";
  }
 }
 $condition = substr($condition, 0, -4);

 $query = "
 SELECT * FROM register_user 
    WHERE ".$condition." 
    AND register_user_id != '".$_SESSION["user_id"]."'
    LIMIT 10
 ";

 $statement = $connect->prepare($query);

 $statement->execute();

 $output = '<div class="list-group">';

 if($statement->rowCount() > 0)
 {
  foreach($statement->fetchAll() as $row)
  {
   $temp_text = $row["user_name"];
   $temp_text = str_ireplace($search_array, $replace_array, $temp_text);
   $output .= '
   <a href="#" class="list-group-item">
    ' . $temp_text . '
                <div class="pull-left">
                    '.Get_user_avatar($row["register_user_id"], $connect).' &nbsp;
                </div> 
   </a>
   ';
  }
 }
 else
 {
  $output .= '<a href="#" class="list-group-item">No Result Found</a>';
 }
 $output .= '</div>';

 echo $output;
}

if(isset($_POST["query_result"]))
{
 $output = '';
    //$query_string = str_replace(" ", ", ", $_POST["query_result"]);

    $search_array = explode(" ", $_POST["query_result"]);

    $condition = '';
    foreach ($search_array as $search)
    {
        if(trim($search) != '')
        {
            $condition .= "user_name LIKE '%".$search."%' OR ";
        }
    }

    $condition = substr($condition, 0, -4);

    $limit = 5;

    $page = 1;

    if($_POST['page'] > 1)
    {
        $start = (($_POST['page'] - 1) * $limit);
        $page = $_POST['page'];
    }
    else
    {
        $start = 0;
    }

    $query = "
    SELECT * FROM register_user 
    WHERE ".$condition." 
    AND register_user_id != '".$_SESSION["user_id"]."'
    ";

    $filter_query = $query . 'LIMIT '.$start.', '.$limit.'';

    $statement = $connect->prepare($query);

    $statement->execute();

    $total_data = $statement->rowCount();

    $statement = $connect->prepare($filter_query);

    $statement->execute();

    $result = $statement->fetchAll();

    if($total_data > 0)
    {
        foreach($result as $row)
        {
            $output .= '
            <div class="wrapper-box">
                <div class="row">
                    <div class="col-md-1 col-sm-3 col-xs-3">
                        '. Get_user_avatar_big($row["register_user_id"], $connect) .'
                    </div>
                    <div class="col-md-9 col-sm-6 col-xs-5">
                        <div class="wrapper-box-title">'.$row["user_name"].'</div>
                        <div class="wrapper-box-description"><i>From '.$row["user_country"].'</i></div>
                    </div>
                    <div class="col-md-2 col-sm-3 col-xs-4" align="right">
                        <button type="button" name="request_button" class="btn btn-primary request_button" data-userid="'.$row["register_user_id"].'"><i class="fa fa-user-plus"></i> Add Friend</button>
                    </div>
                </div>
            </div>
        ';
        }
    }
    else
    {
        $output .= '
        <div class="wrapper-box">
            <h4 align="center">No Data Found</h4>
        </div>
        ';
    }

    $output .= '
    <br />
    <div align="center">
        <ul class="pagination">
    ';

    $total_links = ceil($total_data/$limit);

    $previous_link = '';

    $next_link = '';

    $page_link = '';

    if($total_links > 5)
    {
        if($page < 5)
        {
            for($count = 1; $count <= 5; $count++)
            {
                $page_array[] = $count;
            }
            $page_array[] = '...';
            $page_array[] = $total_links;
        }
        else
        {
            $end_limit = $total_links - 5;

            if($page > $end_limit)
            {
                $page_array[] = 1;
                $page_array[] = '...';

                for($count = $end_limit; $count <= $total_links; $count++)
                {
                    $page_array[] = $count;
                }
            }
            else
            {
                $page_array[] = 1;
                $page_array[] = '...';
                for($count = $page - 1; $count <= $page + 1; $count++)
                {
                    $page_array[] = $count;
                }
                $page_array[] = '...';
                $page_array[] = $total_links;
            }
        }
    }
    else
    {
        for($count = 1; $count <= $total_links; $count++)
        {
            $page_array[] = $count;
        }
    }

    for($count = 0; $count < count($page_array); $count++)
    {
        if($page == $page_array[$count])
        {
            $page_link .= '
            <li class="page-item active">
                <a class="page-link" href="#">'.$page_array[$count].' <span class="sr-only">(current)</span></a>
            </li>
            ';  

            $previous_id = $page_array[$count] - 1;

            if($previous_id > 0)
            {
                $previous_link = '<li class="page-item"><a class="page-link" href="javascript:void(0)" data-page_number="'.$previous_id.'">Previous</a></li>';
            }
            else
            {
                $previous_link = '
                <li class="page-item disabled">
                    <a class="page-link" href="#">Previous</a>
                 </li>
                ';
            }

            $next_id = $page_array[$count] + 1;

            if($next_id > $total_links)
            {
                $next_link = '
                <li class="page-item disabled">
                    <a class="page-link" href="#">Next</a>
                </li>
                ';
            }
            else
            {
                $next_link = '
                <li class="page-item"><a class="page-link" href="javascript:void(0)" data-page_number="'.$next_id.'">Next</a></li>
                ';
            }

        }
        else
        {
            if($page_array[$count] == '...')
            {
                $page_link .= '
                <li class="page-item disabled">
                    <a class="page-link" href="#">...</a>
                 </li>
                ';
            }
            else
            {
                $page_link .= '
                <li class="page-item"><a class="page-link" href="javascript:void(0)" data-page_number="'.$page_array[$count].'">'.$page_array[$count].'</a></li>
                ';
            }
        }
    }

    $output .= $previous_link . $page_link . $next_link;

    echo $output;
}

?>


search.php



<?php

//search.php

if(isset($_GET["query"]))
{
 $query = urldecode($_GET["query"]);

 $query = preg_replace("#[^a-z 0-9?!]#i", "", $query);
}

if(!isset($query))
{
 header('location:home.php');
}
else
{
 include('header.php');

?>
 
  <div class="row">
   <div class="col-md-9">
    <h3>Search Result for <b><?php echo $query; ?></b></h3>
    <div id="search_result_area">
     <div class="wrapper-preview">
      <i class="fa fa-circle-o-notch fa-spin" style="font-size:24px"></i>
     </div>
    </div>
   </div>
  </div>


  <script>
  $(document).ready(function(){
   var query_result = "<?php echo $query; ?>";

   $('#searchbar').val(query_result);

   load_data(query_result, 1);

   function load_data(query_result, page)
   {
    $.ajax({
     url:"search_action.php",
     method:"POST",
     data:{query_result:query_result, page:page},
     success:function(data)
     {
      $('#search_result_area').html(data);
     }
    })
   }

   $(document).on('click', '.page-link', function(){
    var page = $(this).data('page_number');

    if(page > 0)
    {
     load_data(query_result, page);
    }
   });

  });
  </script>
<?php

 include('footer.php');
}

?>


function.php



<?php

//function.php

function make_avatar($character)
{
    $path = "avatar/". time() . ".png";
 $image = imagecreate(200, 200);
 $red = rand(0, 255);
 $green = rand(0, 255);
 $blue = rand(0, 255);
    imagecolorallocate($image, $red, $green, $blue);  
    $textcolor = imagecolorallocate($image, 255,255,255);  

    imagettftext($image, 100, 0, 55, 150, $textcolor, 'font/arial.ttf', $character);  
    //header("Content-type: image/png");  
    imagepng($image, $path);
    imagedestroy($image);
    return $path;
}

function Get_user_avatar($user_id, $connect)
{
 $query = "
 SELECT user_avatar FROM register_user 
    WHERE register_user_id = '".$user_id."'
 ";

 $statement = $connect->prepare($query);

 $statement->execute();

 $result = $statement->fetchAll();

 foreach($result as $row)
 {
  return '<img src="'.$row['user_avatar'].'" width="25" class="img-circle" />';
 }
}

function load_country_list()
{
    $output = '';
    $countries = array("Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia and Herzegowina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Cayman Islands", "Central African Republic", "Chad", "Chile", "China", "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo", "Congo, the Democratic Republic of the", "Cook Islands", "Costa Rica", "Cote d'Ivoire", "Croatia (Hrvatska)", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Falkland Islands (Malvinas)", "Faroe Islands", "Fiji", "Finland", "France", "France Metropolitan", "French Guiana", "French Polynesia", "French Southern Territories", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Heard and Mc Donald Islands", "Holy See (Vatican City State)", "Honduras", "Hong Kong", "Hungary", "Iceland", "India", "Indonesia", "Iran (Islamic Republic of)", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea, Democratic People's Republic of", "Korea, Republic of", "Kuwait", "Kyrgyzstan", "Lao, People's Democratic Republic", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libyan Arab Jamahiriya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia, The Former Yugoslav Republic of", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia, Federated States of", "Moldova, Republic of", "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "Northern Mariana Islands", "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn", "Poland", "Portugal", "Puerto Rico", "Qatar", "Reunion", "Romania", "Russian Federation", "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Seychelles", "Sierra Leone", "Singapore", "Slovakia (Slovak Republic)", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "Spain", "Sri Lanka", "St. Helena", "St. Pierre and Miquelon", "Sudan", "Suriname", "Svalbard and Jan Mayen Islands", "Swaziland", "Sweden", "Switzerland", "Syrian Arab Republic", "Taiwan, Province of China", "Tajikistan", "Tanzania, United Republic of", "Thailand", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "Virgin Islands (British)", "Virgin Islands (U.S.)", "Wallis and Futuna Islands", "Western Sahara", "Yemen", "Yugoslavia", "Zambia", "Zimbabwe");
    foreach($countries as $country)
    {
        $output .= '<option value="'.$country.'">'.$country.'</option>';
    }
    return $output;
}

function Get_user_profile_data($user_id, $connect)
{
    $query = "
    SELECT * FROM register_user 
    WHERE register_user_id = '".$user_id."'
    ";
    return $connect->query($query);
}

function Get_user_profile_data_html($user_id, $connect)
{
    $result = Get_user_profile_data($user_id, $connect);

    $output = '
    <div class="table-responsive">
        <table class="table">
    ';

    foreach($result as $row)
    {
        if($row['user_avatar'] != '')
        {
            $output .= '
            <tr>
                <td colspan="2" align="center" style="padding:16px 0">
                    <img src="'.$row["user_avatar"].'" width="175" class="img-thumbnail img-circle" />
                </td>
            </tr>
            ';
        }

        $output .= '
        <tr>
            <th>Name</th>
            <td>'.$row["user_name"].'</td>
        </tr>
        <tr>
            <th>Email</th>
            <td>'.$row["user_email"].'</td>
        </tr>
        <tr>
            <th>Birth Date</th>
            <td>'.$row["user_birthdate"].'</td>
        </tr>
        <tr>
            <th>Gender</th>
            <td>'.$row["user_gender"].'</td>
        </tr>
        <tr>
            <th>Address</th>
            <td>'.$row["user_address"].'</td>
        </tr>
        <tr>
            <th>City</th>
            <td>'.$row["user_city"].'</td>
        </tr>
        <tr>
            <th>Zip</th>
            <td>'.$row["user_zipcode"].'</td>
        </tr>
        <tr>
            <th>State</th>
            <td>'.$row["user_state"].'</td>
        </tr>
        <tr>
            <th>Country</th>
            <td>'.$row["user_country"].'</td>
        </tr>
        ';
    }
    $output .= '
        </table>
    </div>
    ';

    return $output;
}

function wrap_tag($argument)
{
    return '<b>' . $argument . '</b>';
}

function Get_user_avatar_big($user_id, $connect)
{
    $query = "
    SELECT user_avatar FROM register_user 
    WHERE register_user_id = '".$user_id."'
    ";
    $statement = $connect->prepare($query);
    $statement->execute();
    $result = $statement->fetchAll();
    foreach($result as $row)
    {
        return '<img src="'.$row['user_avatar'].'" class="img-responsive img-circle" />';
    }
}

?>








PHP Social Networking Websites tutorial source code will be available very soon.

0 comments:

Post a comment