How to make a PHP registration system

Learn how to create a secure PHP registration system with an example code.

Creating a PHP Registration System

Creating a registration system in PHP is a relatively straightforward task. The following steps will help you create a basic registration system in PHP:

Step 1: Design the HTML Form

The first step is to create an HTML form that will allow users to register themselves on your website. This form should include fields for the user to enter their name, email address, password, and any other information you want to collect.

<form action="register.php" method="post">
  <label for="name">Name:</label>
  <input type="text" name="name" id="name" />
  <label for="email">Email:</label>
  <input type="email" name="email" id="email" />
  <label for="password">Password:</label>
  <input type="password" name="password" id="password" />
  <input type="submit" value="Register" />
</form>

Step 2: Create the register.php File

The next step is to create the PHP file that will process the form data and add the user to the database. This file should check to make sure that the user has entered all the required fields, and then should add the user to the database.

<?php
  // Check if the form has been submitted
  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Get the form data
    $name = $_POST['name'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    
    // Validate the data
    if (empty($name) || empty($email) || empty($password)) {
      // If any fields are empty, show an error message
      echo 'Please fill in all fields';
    } else {
      // If all fields are filled in, add the user to the database
      // Connect to the database
      $conn = mysqli_connect('localhost', 'username', 'password', 'database');
      
      // Create and run the query
      $query = "INSERT INTO users (name, email, password) VALUES ('$name', '$email', '$password')";
      mysqli_query($conn, $query);
      
      // Close the connection
      mysqli_close($conn);
      
      // Show a success message
      echo 'User successfully added';
    }
  }
?>

Step 3: Create the Login Page

The third step is to create the login page that will allow users to log in to your website. The login page should include a form with fields for the user to enter their email address and password.

<form action="login.php" method="post">
  <label for="email">Email:</label>
  <input type="email" name="email" id="email" />
  <label for="password">Password:</label>
  <input type="password" name="password" id="password" />
  <input type="submit" value="Login" />
</form>

Step 4: Create the login.php File

The fourth step is to create the PHP file that will process the login form and check that the user's credentials are correct. This file should check the database to see if the user exists and if their password is correct.

<?php
  // Check if the form has been submitted
  if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Get the form data
    $email = $_POST['email'];
    $password = $_POST['password'];
    
    // Validate the data
    if (empty($email) || empty($password)) {
      // If any fields are empty, show an error message
      echo 'Please fill in all fields';
    } else {
      // If all fields are filled in, check the database
      // Connect to the database
      $conn = mysqli_connect('localhost', 'username', 'password', 'database');
      
      // Create and run the query
      $query = "SELECT * FROM users WHERE email = '$email' AND password = '$password'";
      $result = mysqli_query($conn, $query);
      
      // Check the number of rows in the result
      if (mysqli_num_rows($result) == 1) {
        // If there is one row, the user is logged in
        echo 'You are now logged in';
      } else {
        // If there are no rows, the login failed
        echo 'The email or password is incorrect';
      }
      
      // Close the connection
      mysqli_close($conn);
    }
  }
?>

And that's it! You now have a basic registration system in PHP. With a bit of extra work, you can add additional features such as password reset and user profiles.

Answers (0)