Monday, April 13, 2020

Php Login Form And Registration Form | Php Code Example

This article will help you to learn about how to create Php Login Form And Registration Form for your website you can also check out "Php Login Form", "Registration Form in Php code", "student registration form in PHP code with validation" and many more In Computerinhindi.


Php Login Form And Registration Form
Php Login Form And Registration Form

Building A Php Registration Form


Registration System Is Commonly used in most of the websites now with the help of Registration Form users can upload their content to the website and other information with filling a form. The form can be many types like "student registration form in PHP code with validation", " registration form in PHP with validation" and many more.


  • Create Database Table For Registration Form in PHP

We, Will, Use SQL And Mysqli To create a user table.

CREATE TABLE users (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
  • Create Config File For Registration Form in PHP


Php Login Form And Registration Form तालिका बनाने के बाद, हमें MySQL डेटाबेस सर्वर से जुड़ने के लिए PHP स्क्रिप्ट बनाने की आवश्यकता है। चलो "config.php" नाम की एक फ़ाइल बनाते हैं और इसके अंदर निम्नलिखित कोड डालते हैं।


/* Database credentials. Assuming you are running MySQL
server with default setting (user 'root' with no password) */
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'demo');
 
/* Attempt to connect to MySQL database */
$link = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);
 
// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

Use Staring And Ending Tag


  • Create Registration Form In Php

Php Login Form And Registration Form में एक और PHP फ़ाइल "register.php" बनाएं और इसमें निम्नलिखित उदाहरण कोड डालें। यह उदाहरण कोड एक वेब फॉर्म बनाएगा जो उपयोगकर्ता को खुद को पंजीकृत करने की अनुमति देता है।

यह स्क्रिप्ट त्रुटियों को भी उत्पन्न करेगा यदि उपयोगकर्ता किसी भी मूल्य को दर्ज किए बिना फ़ॉर्म सबमिट करने का प्रयास करता है, या यदि उपयोगकर्ता द्वारा दर्ज किया गया उपयोगकर्ता नाम पहले से ही किसी अन्य उपयोगकर्ता द्वारा लिया गया है।


 
<html lang="en">
<head>
    
    <title>Sign Up</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet"></link>
    <style type="text/css">
        body{ font: 14px sans-serif; }
        .wrapper{ width: 350px; padding: 20px; }
    </style>
</head>
<body>
    <div class="wrapper">
        <h2>
Sign Up</h2>
Please fill this form to create an account.


        <form action="&lt;?php echo htmlspecialchars($_SERVER[" php_self="">
" method="post"&gt;
            <div class="form-group &lt;?php echo (!empty($username_err)) ? 'has-error' : ''; ?&gt;">
                <label>Username</label>
                <input class="form-control" name="username" type="text" value="&lt;?php echo $username; ?&gt;" />
                <span class="help-block"></span>
            </div>
<div class="form-group &lt;?php echo (!empty($password_err)) ? 'has-error' : ''; ?&gt;">
                <label>Password</label>
                <input class="form-control" name="password" type="password" value="&lt;?php echo $password; ?&gt;" />
                <span class="help-block"></span>
            </div>
<div class="form-group &lt;?php echo (!empty($confirm_password_err)) ? 'has-error' : ''; ?&gt;">
                <label>Confirm Password</label>
                <input class="form-control" name="confirm_password" type="password" value="&lt;?php echo $confirm_password; ?&gt;" />
                <span class="help-block"></span>
            </div>
<div class="form-group">
                <input class="btn btn-primary" type="submit" value="Submit" />
                <input class="btn btn-default" type="reset" value="Reset" />
            </div>
Already have an account? <a href="https://www.blogger.com/u/1/login.php">Login here</a>.


        </form>
</div>
</body>
</html>

Php Login Form And Registration Form
Php Login Form And Registration Form

उपरोक्त Php Login Form And Registration Form के उदाहरण में, हमने उपयोगकर्ता द्वारा दर्ज पासवर्ड स्ट्रिंग से पासवर्ड हैश बनाने के लिए PHP password_hash () फ़ंक्शन का उपयोग किया है। यह फ़ंक्शन एक मजबूत है-वे हैशिंग एल्गोरिथ्म का उपयोग करके एक पासवर्ड हैश बनाता है। यह पासवर्ड उत्पन्न होने पर स्वचालित रूप से एक यादृच्छिक नमक उत्पन्न और लागू करता है; इसका मतलब यह है कि अगर दो उपयोगकर्ताओं के पास एक ही पासवर्ड है, तो भी उनका पासवर्ड हैश अलग होगा।

लॉगिन के समय हम दिए गए पासवर्ड को डेटाबेस में संग्रहीत पासवर्ड हैश के साथ PHP password_verify () फ़ंक्शन का उपयोग करके सत्यापित करेंगे, जैसा कि अगले उदाहरण में दिखाया गया है।


Building A Php Login Form

Php Login Form And Registration Form के इस अनुभाग में हम एक लॉगिन फ़ॉर्म बनाएँगे जहाँ उपयोगकर्ता अपना उपयोगकर्ता नाम और पासवर्ड दर्ज कर सकते हैं। जब उपयोगकर्ता प्रपत्र सबमिट करता है तो ये इनपुट डेटाबेस में संग्रहीत क्रेडेंशियल्स के खिलाफ सत्यापित किए जाएंगे, यदि उपयोगकर्ता नाम और पासवर्ड मेल खाते हैं, तो उपयोगकर्ता अधिकृत है और साइट तक पहुंच प्रदान करता है, अन्यथा लॉगिन प्रयास को अस्वीकार कर दिया जाएगा।

  • Step 1: - Creating Login Form In Php


<?php
// Initialize the session
session_start();
 
// Check if the user is already logged in, if yes then redirect him to welcome page
if(isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
    header("location: welcome.php");
    exit;
}
 
// Include config file
require_once "config.php";
 
// Define variables and initialize with empty values
$username = $password = "";
$username_err = $password_err = "";
 
// Processing form data when form is submitted
if($_SERVER["REQUEST_METHOD"] == "POST"){
 
    // Check if username is empty
    if(empty(trim($_POST["username"]))){
        $username_err = "Please enter username.";
    } else{
        $username = trim($_POST["username"]);
    }
    
    // Check if password is empty
    if(empty(trim($_POST["password"]))){
        $password_err = "Please enter your password.";
    } else{
        $password = trim($_POST["password"]);
    }
    
    // Validate credentials
    if(empty($username_err) && empty($password_err)){
        // Prepare a select statement
        $sql = "SELECT id, username, password FROM users WHERE username = ?";
        
        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "s", $param_username);
            
            // Set parameters
            $param_username = $username;
            
            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                // Store result
                mysqli_stmt_store_result($stmt);
                
                // Check if username exists, if yes then verify password
                if(mysqli_stmt_num_rows($stmt) == 1){                    
                    // Bind result variables
                    mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password);
                    if(mysqli_stmt_fetch($stmt)){
                        if(password_verify($password, $hashed_password)){
                            // Password is correct, so start a new session
                            session_start();
                            
                            // Store data in session variables
                            $_SESSION["loggedin"] = true;
                            $_SESSION["id"] = $id;
                            $_SESSION["username"] = $username;                            
                            
                            // Redirect user to welcome page
                            header("location: welcome.php");
                        } else{
                            // Display an error message if password is not valid
                            $password_err = "The password you entered was not valid.";
                        }
                    }
                } else{
                    // Display an error message if username doesn't exist
                    $username_err = "No account found with that username.";
                }
            } else{
                echo "Oops! Something went wrong. Please try again later.";
            }

            // Close statement
            mysqli_stmt_close($stmt);
        }
    }
    
    // Close connection
    mysqli_close($link);
}
?>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
        body{ font: 14px sans-serif; }
        .wrapper{ width: 350px; padding: 20px; }
    </style>
</head>
<body>
    <div class="wrapper">
        <h2>Login</h2>
        <p>Please fill in your credentials to login.</p>
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
            <div class="form-group <?php echo (!empty($username_err)) ? 'has-error' : ''; ?>">
                <label>Username</label>
                <input type="text" name="username" class="form-control" value="<?php echo $username; ?>">
                <span class="help-block"><?php echo $username_err; ?></span>
            </div>    
            <div class="form-group <?php echo (!empty($password_err)) ? 'has-error' : ''; ?>">
                <label>Password</label>
                <input type="password" name="password" class="form-control">
                <span class="help-block"><?php echo $password_err; ?></span>
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Login">
            </div>
            <p>Don't have an account? <a href="register.php">Sign up now</a>.</p>
        </form>
    </div>    
</body>
</html>

  • Step 2 - Create Welcome Page For Php Login Form And Registration Form

<?php
// Initialize the session
session_start();
 
// Check if the user is logged in, if not then redirect him to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: login.php");
    exit;
}
?>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Welcome</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
        body{ font: 14px sans-serif; text-align: center; }
    </style>
</head>
<body>
    <div class="page-header">
        <h1>Hi, <b><?php echo htmlspecialchars($_SESSION["username"]); ?></b>. Welcome to our site.</h1>
    </div>
    <p>
        <a href="reset-password.php" class="btn btn-warning">Reset Your Password</a>
        <a href="logout.php" class="btn btn-danger">Sign Out of Your Account</a>
    </p>
</body>
</html>

यदि Php Login Form And Registration Form डेटा गुमनाम उपयोगकर्ताओं द्वारा भरे गए फॉर्म जैसे बाहरी स्रोतों से आता है, तो एक जोखिम है कि इसमें क्रॉस-साइट स्क्रिप्टिंग (XSS) हमलों को शुरू करने के लिए दुर्भावनापूर्ण स्क्रिप्ट हो सकती है। इसलिए, आपको ब्राउज़र में प्रदर्शित करने से पहले PHP htmlspecialchars () फ़ंक्शन का उपयोग करके इस डेटा से बचना चाहिए, ताकि किसी भी HTML टैग में यह हानिरहित हो जाए।

  • Create Logout Script In Php

अब Php Login Form And Registration Form, एक "logout.php" फ़ाइल बनाते हैं। जब उपयोगकर्ता लॉग आउट पर क्लिक करता है या लिंक पर हस्ताक्षर करता है, तो इस फ़ाइल के अंदर की स्क्रिप्ट सत्र को नष्ट कर देती है और उपयोगकर्ता को लॉगिन पृष्ठ पर वापस भेज देती है।

<?php
// Initialize the session
session_start();
 
// Unset all of the session variables
$_SESSION = array();
 
// Destroy the session.
session_destroy();
 
// Redirect to login page
header("location: login.php");
exit;
?> 

Php Login Form And Registration Form
Php Login Form And Registration Form

  • Adding Reset Password Feature For Registration Form In Php

 Finally In  "Php Login Form And Registration Form", इस खंड में हम अपने Php Login Form में पासवर्ड रीसेट उपयोगिता जोड़ देंगे। उपयोगकर्ताओं में लॉग की गई इस सुविधा का उपयोग करके अपने खातों के लिए तुरंत अपना पासवर्ड रीसेट कर सकते हैं।

 

<?php
// Initialize the session
session_start();
 
// Check if the user is logged in, if not then redirect to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
    header("location: login.php");
    exit;
}
 
// Include config file
require_once "config.php";
 
// Define variables and initialize with empty values
$new_password = $confirm_password = "";
$new_password_err = $confirm_password_err = "";
 
// Processing form data when form is submitted
if($_SERVER["REQUEST_METHOD"] == "POST"){
 
    // Validate new password
    if(empty(trim($_POST["new_password"]))){
        $new_password_err = "Please enter the new password.";     
    } elseif(strlen(trim($_POST["new_password"])) < 6){
        $new_password_err = "Password must have atleast 6 characters.";
    } else{
        $new_password = trim($_POST["new_password"]);
    }
    
    // Validate confirm password
    if(empty(trim($_POST["confirm_password"]))){
        $confirm_password_err = "Please confirm the password.";
    } else{
        $confirm_password = trim($_POST["confirm_password"]);
        if(empty($new_password_err) && ($new_password != $confirm_password)){
            $confirm_password_err = "Password did not match.";
        }
    }
        
    // Check input errors before updating the database
    if(empty($new_password_err) && empty($confirm_password_err)){
        // Prepare an update statement
        $sql = "UPDATE users SET password = ? WHERE id = ?";
        
        if($stmt = mysqli_prepare($link, $sql)){
            // Bind variables to the prepared statement as parameters
            mysqli_stmt_bind_param($stmt, "si", $param_password, $param_id);
            
            // Set parameters
            $param_password = password_hash($new_password, PASSWORD_DEFAULT);
            $param_id = $_SESSION["id"];
            
            // Attempt to execute the prepared statement
            if(mysqli_stmt_execute($stmt)){
                // Password updated successfully. Destroy the session, and redirect to login page
                session_destroy();
                header("location: login.php");
                exit();
            } else{
                echo "Oops! Something went wrong. Please try again later.";
            }

            // Close statement
            mysqli_stmt_close($stmt);
        }
    }
    
    // Close connection
    mysqli_close($link);
}
?>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Reset Password</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.css">
    <style type="text/css">
        body{ font: 14px sans-serif; }
        .wrapper{ width: 350px; padding: 20px; }
    </style>
</head>
<body>
    <div class="wrapper">
        <h2>Reset Password</h2>
        <p>Please fill out this form to reset your password.</p>
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> 
            <div class="form-group <?php echo (!empty($new_password_err)) ? 'has-error' : ''; ?>">
                <label>New Password</label>
                <input type="password" name="new_password" class="form-control" value="<?php echo $new_password; ?>">
                <span class="help-block"><?php echo $new_password_err; ?></span>
            </div>
            <div class="form-group <?php echo (!empty($confirm_password_err)) ? 'has-error' : ''; ?>">
                <label>Confirm Password</label>
                <input type="password" name="confirm_password" class="form-control">
                <span class="help-block"><?php echo $confirm_password_err; ?></span>
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Submit">
                <a class="btn btn-link" href="welcome.php">Cancel</a>
            </div>
        </form>
    </div>    
</body>
</html>

0 Comments:

Post a Comment