0

I am trying to build a signup and login page for my project, and I am new to PHP. I have 2 different pages, but all the same PHP (Just to see if there was an issue on PHP side of the code). Here, when I click to submit button, it echoes "a":

<?php
//session_start();

require_once "config.php";

// When 'Submit' button gets clicked
if(isset($_POST['submit'])) {
  echo "a";
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sign Up</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>Sign Up</h2>
        <p>Please fill this form to create an account.</p>
        <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
            <div class="form-group">
                <label>Full Name</label>
                <input type="text" name="fullname" class="form-control">
            </div> 
            <div class="form-group">
                <label>Email</label>
                <input type="email" name="email" class="form-control">
            </div>  
            <div class="form-group">
                <label>Username</label>
                <input type="text" name="username" class="form-control">
            </div>    
            <div class="form-group">
                <label>Password</label>
                <input type="password" name="password" class="form-control">
            </div>
            <div class="form-group">
                <label>Confirm Password</label>
                <input type="password" name="confirm_password" class="form-control">
            </div>
            <div>
              <p>                                                           
                      <input type="radio" name="ord" value="1"/> I want to sign up as a PLAYER.<br/>
                      <input type="radio" name="ord" value="2"/> I want to sign up as an OWNER.<br/>
                      <input type="hidden" name="submit" value=""1/>
                  </p>
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Submit">
                <input type="reset" class="btn btn-default" value="Reset">
            </div>
            <p>Already have an account? <a href="login.php">Login here</a>.</p>
        </form>
    </div>    
</body>
</html>

However, it doesn't echo here somehow:

<?php
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;
}

require_once "config.php";

// Define variables and initialize with empty values
$username = $password = "";
$username_err = $password_err = "";

// When 'Submit' button gets clicked
if(isset($_POST['submit'])) {
  echo "a";
}
?>

<!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">
                <label>Username</label>
                <input type="text" name="username" class="form-control">
            </div>    
            <div class="form-group">
                <label>Password</label>
                <input type="password" name="password" class="form-control">
            </div>
            <div class="form-group">
                <input type="submit" class="btn btn-primary" value="Submit">
                <input type="reset" class="btn btn-default" value="Reset">
            </div>
            <p>Don't have an account? <a href="register.php">Sign up</a>.</p>
        </form>
    </div>    
</body>
</html>

I really didn't understand why tbh. I am probably missing some minor thing but I couldn't notice it.

yucecoder
  • 101
  • 1
  • 1
  • 4
  • 1
    Because you need something with `name="submit"` for `if(isset($_POST['submit'])) { echo "a";` to run and in example two you remove the hidden field. ***NOTE***:Please do NOT have something with name="submit" in a form. Change it to mySubmit or something else. The reason is that anything named submit will prevent you from ever submitting the form using script – mplungjan May 31 '20 at 16:26
  • Because you have `` in your first form but not in your second – brombeer May 31 '20 at 16:27
  • Thanks to both of you. It was the problem I had, and after adding the missing line it is working fine. Also changed name="submit" to prevent future conflicts. Again, thanks for advises. – yucecoder May 31 '20 at 16:37

0 Answers0