I have two forms contained in one PHP file. One of the forms is for “log in” and the other form is to “sign up” i have some CSS and JS that will switch out the forms visually, but regardless the two forms are still in one php file.
These forms are standard:
<form action="login.php" method="post" name="user-sign-up"> <div class="error"> <?php if(!empty($error)){echo $error;} ?> </div> <span>First name</span> <input type="text" name="fname" class="fname"> <input type="submit" value="Sign Up" class="signupdawg" id="firstname-signup"> </form>
Then I got another form underneath that one.
Here’s my php, it sort of works and only works for one of the forms:
if( isset($_POST['fname']) && !empty($_POST['fname'])){ $upName = $_POST['fname']; if(empty($upName)){ $error = 'All fields are required';
I only shortened the code, so it wouldn’t take up to much space. I had other inputs like a password, but I just removed it because the code is pretty much the same except I had an “or” in my php empty check and a few more lines in my html for it.
Anyway, I am wondering how I can validate two forms at once with PHP.
Thank you.
Advertisement
Answer
You can only submit one form at a time, so you need to use something on the form to determine which one was submitted. This is just a simple example using your code:
if(isset($_POST['Sign_Up'])) { //do sign up stuff } elseif(isset($_POST['Login'])) { //do login stuff }
Notice Sign Up
is converted to Sign_Up
. It may be better to use two separate action
in each form and have two different files.
Additionally, isset
is redundant here:
if( isset($_POST['fname']) && !empty($_POST['fname'])){
The empty
already checks if it is set, so just:
if(!empty($_POST['fname'])){