Log In Form Log Out Script Cookies Sessions User Profile

Learn to program the HTML - PHP - Ajax log in form, the log out script, start the user profile page for your social network web site software. We also create a module for checking user session, cookies and authentication against the MySQL database. In the next tutorial we will cover site maintenance automation using Cron Jobs. login.php <?php include_once("php_includes/check_login_status.php"); // If user is already logged in, header that weenis away if($user_ok == true){ header("location: user.php?u=".$_SESSION["username"]); exit(); } ?><?php // AJAX CALLS THIS LOGIN CODE TO EXECUTE if(isset($_POST["e"])){ // CONNECT TO THE DATABASE include_once("php_includes/db_conx.php"); // GATHER THE POSTED DATA INTO LOCAL VARIABLES AND SANITIZE $e = mysqli_real_escape_string($db_conx, $_POST['e']); $p = md5($_POST['p']); // GET USER IP ADDRESS $ip = preg_replace('#[^0-9.]#', '', getenv('REMOTE_ADDR')); // FORM DATA ERROR HANDLING if($e == "" || $p == ""){ echo "login_failed"; exit(); } else { // END FORM DATA ERROR HANDLING $sql = "SELECT id, username, password FROM users WHERE email='$e' AND activated='1' LIMIT 1"; $query = mysqli_query($db_conx, $sql); $row = mysqli_fetch_row($query); $db_id = $row[0]; $db_username = $row[1]; $db_pass_str = $row[2]; if($p != $db_pass_str){ echo "login_failed"; exit(); } else { // CREATE THEIR SESSIONS AND COOKIES $_SESSION['userid'] = $db_id; $_SESSION['username'] = $db_username; $_SESSION['password'] = $db_pass_str; setcookie("id", $db_id, strtotime( '+30 days' ), "/", "", "", TRUE); setcookie("user", $db_username, strtotime( '+30 days' ), "/", "", "", TRUE); setcookie("pass", $db_pass_str, strtotime( '+30 days' ), "/", "", "", TRUE); // UPDATE THEIR "IP" AND "LASTLOGIN" FIELDS $sql = "UPDATE users SET ip='$ip', lastlogin=now() WHERE username='$db_username' LIMIT 1"; $query = mysqli_query($db_conx, $sql); echo $db_username; exit(); } } exit(); } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Log In</title> <link rel="icon" href="favicon.ico" type="image/x-icon"> <link rel="stylesheet" href="style/style.css"> <style type="text/css"> #loginform{ margin-top:24px; } #loginform > div { margin-top: 12px; } #loginform > input { width: 200px; padding: 3px; background: #F3F9DD; } #loginbtn { font-size:15px; padding: 10px; } </style> <script src="js/main.js"></script> <script src="js/ajax.js"></script> <script> function emptyElement(x){ _(x).innerHTML = ""; } function login(){ var e = _("email").value; var p = _("password").value; if(e == "" || p == ""){ _("status").innerHTML = "Fill out all of the form data"; } else { _("loginbtn").style.display = "none"; _("status").innerHTML = 'please wait ...'; var ajax = ajaxObj("POST", "login.php"); ajax.onreadystatechange = function() { if(ajaxReturn(ajax) == true) { if(ajax.responseText == "login_failed"){ _("status").innerHTML = "Login unsuccessful, please try again."; _("loginbtn").style.display = "block"; } else { window.location = "user.php?u="+ajax.responseText; } } } ajax.send("e="+e+"&p="+p); } } </script> </head> <body> <?php include_once("template_pageTop.php"); ?> <div id="pageMiddle"> <h3>Log In Here</h3> <!-- LOGIN FORM --> <form id="loginform" onsubmit="return false;"> <div>Email Address:</div> <input type="text" id="email" onfocus="emptyElement('status')" maxlength="88"> <div>Password:</div> <input type="password" id="password" onfocus="emptyElement('status')" maxlength="100"> <br /><br /> <button id="loginbtn" onclick="login()">Log In</button> <p id="status"></p> <a href="#">Forgot Your Password?</a> </form> <!-- LOGIN FORM --> </div> <?php include_once("template_pageBottom.php"); ?> </body> </html> logout.php <?php session_start(); // Set Session data to an empty array $_SESSION = array(); // Expire their cookie files if(isset($_COOKIE["id"]) && isset($_COOKIE["user"]) && isset($_COOKIE["pass"])) { setcookie("id", '', strtotime( '-5 days' ), '/'); setcookie("user", '', strtotime( '-5 days' ), '/'); setcookie("pass", '', strtotime( '-5 days' ), '/'); } // Destroy the session variables session_destroy(); // Double check to see if their sessions exists if(isset($_SESSION['username'])){ header("location: message.php?msg=Error:_Logout_Failed"); } else { header("location: http://www.yoursite.com"); exit(); } ?> user.php <?php include_once("php_includes/check_login_status.php"); // Initialize any variables that the page might echo $u = ""; $sex = "Male"; $userlevel = ""; $country = ""; $joindate = ""; $lastsession = ""; // Make sure the _GET username is set, and sanitize it if(isset($_GET["u"])){ $u = preg_replace('#[^a-z0-9]#i', '', $_GET['u']); } else { header("location: http://www.yoursite.com"); exit(); } // Select the member from the users table $sql = "SELECT * FROM users WHERE username='$u' AND activated='1' LIMIT 1"; $user_query = mysqli_query($db_conx, $sql); // Now make sure that user exists in the table $numrows = mysqli_num_rows($user_query); if($numrows < 1){ echo "That user does not exist or is not yet activated, press back"; exit(); } // Check to see if the viewer is the account owner $isOwner = "no"; if($u == $log_username && $user_ok == true){ $isOwner = "yes"; } // Fetch the user row from the query above while ($row = mysqli_fetch_array($user_query, MYSQLI_ASSOC)) { $profile_id = $row["id"]; $gender = $row["gender"]; $country = $row["country"]; $userlevel = $row["userlevel"]; $signup = $row["signup"]; $lastlogin = $row["lastlogin"]; $joindate = strftime("%b %d, %Y", strtotime($signup)); $lastsession = strftime("%b %d, %Y", strtotime($lastlogin)); if($gender == "f"){ $sex = "Female"; } } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title><?php echo $u; ?></title> <link rel="icon" href="favicon.ico" type="image/x-icon"> <link rel="stylesheet" href="style/style.css"> <script src="js/main.js"></script> <script src="js/ajax.js"></script> </head> <body> <?php include_once("template_pageTop.php"); ?> <div id="pageMiddle"> <h3><?php echo $u; ?></h3> <p>Is the viewer the page owner, logged in and verified? <b><?php echo $isOwner; ?></b></p> <p>Gender: <?php echo $sex; ?></p> <p>Country: <?php echo $country; ?></p> <p>User Level: <?php echo $userlevel; ?></p> <p>Join Date: <?php echo $joindate; ?></p> <p>Last Session: <?php echo $lastsession; ?></p> </div> <?php include_once("template_pageBottom.php"); ?> </body> </html> check_login_status.php <?php session_start(); include_once("db_conx.php"); // Files that inculde this file at the very top would NOT require // connection to database or session_start(), be careful. // Initialize some vars $user_ok = false; $log_id = ""; $log_username = ""; $log_password = ""; // User Verify function function evalLoggedUser($conx,$id,$u,$p){ $sql = "SELECT ip FROM users WHERE id='$id' AND username='$u' AND password='$p' AND activated='1' LIMIT 1"; $query = mysqli_query($conx, $sql); $numrows = mysqli_num_rows($query); if($numrows > 0){ return true; } } if(isset($_SESSION["userid"]) && isset($_SESSION["username"]) && isset($_SESSION["password"])) { $log_id = preg_replace('#[^0-9]#', '', $_SESSION['userid']); $log_username = preg_replace('#[^a-z0-9]#i', '', $_SESSION['username']); $log_password = preg_replace('#[^a-z0-9]#i', '', $_SESSION['password']); // Verify the user $user_ok = evalLoggedUser($db_conx,$log_id,$log_username,$log_password); } else if(isset($_COOKIE["id"]) && isset($_COOKIE["user"]) && isset($_COOKIE["pass"])){ $_SESSION['userid'] = preg_replace('#[^0-9]#', '', $_COOKIE['id']); $_SESSION['username'] = preg_replace('#[^a-z0-9]#i', '', $_COOKIE['user']); $_SESSION['password'] = preg_replace('#[^a-z0-9]#i', '', $_COOKIE['pass']); $log_id = $_SESSION['userid']; $log_username = $_SESSION['username']; $log_password = $_SESSION['password']; // Verify the user $user_ok = evalLoggedUser($db_conx,$log_id,$log_username,$log_password); if($user_ok == true){ // Update their lastlogin datetime field $sql = "UPDATE users SET lastlogin=now() WHERE id='$log_id' LIMIT 1"; $query = mysqli_query($db_conx, $sql); } } ?>

PHP Videos

Social Network Development

Introduction and Building the Design TemplateDatabase Creation and PHP MySQLi Connection Script TutorialMySQL Database Tables Creation Script LogicEstablish htaccess and phpini for apache web site server configurationCreate the Main JavaScript Module and Insert Other Modules TutorialSign Up Form and Email Activation PHP MySQL JavaScript Programming TutorialLog In Form Log Out Script Cookies Sessions User ProfileCron Job Automate Social Network Web Site Maintenance TutorialForgot Account Password Form Email Script Ajax TutorialFriend Add Block System Ajax TutorialSocial Network Header Logic Dynamic Links Example ScriptFriend Lists and Social Network Notifications TutorialUser Profile Photo File Upload HTML Form PHP Parse Script MySQLPhoto Gallery CMS TutorialConversation System Social Network Ajax PHP MySQL Tutorial
Snap to Top
Home Page
Table of Contents
Donate / Support
Web Hosting
Terms of Use

webintersect.com
adamkhoury.com
© 2015 All Rights Reserved