jimfog Posted June 15, 2012 Share Posted June 15, 2012 I cannot make a form validation code work, I cannot find where is the error-here is the code: The HTML form: <form id="form" action="register_new.php" method="post"> Name:<span class="asterisk">*</span><input name="name" type="text" size="25" /></br> Phone:<span class="asterisk">*</span><input name="phone" type="text" size="25" /><br> Username/e-mail:<span class="asterisk">*</span><input name="username/e-mail" type="text" size="25" /></br> Password:<span class="asterisk">*</span><input name="password" type="text" size="25" /></br> <input name="register date" type="hidden" /></br> <input type="button" value="Submit" /></form> The php code that resides in register_new.php: <?php require_once 'output_functions.php';require_once 'User_ath_fns.php';$username=$_POST['username/e-mail'];$name=$_POST['name'];$phone=$_POST['phone'];$password=$_POST['password'];if(!isset($username)){echo 'test';}?> I proceed to validate first that the username is filled in-I did not go to check the rest, I am just doing my tests for now. I cannot find the error above. Link to comment Share on other sites More sharing options...
Ingolme Posted June 15, 2012 Share Posted June 15, 2012 $username is always set because you declared it a few lines back. $_POST['username/e-mail'] will always be set as long as the form was sent, and otherwise PHP will throw a warning because you're trying to assign an unset value to another variable. Form fields that were not filled in arrive to the server-side as a set variable with an empty string as a value. Link to comment Share on other sites More sharing options...
jimfog Posted June 15, 2012 Author Share Posted June 15, 2012 How am I going to test if the fields of the form are filled? I am confused. Link to comment Share on other sites More sharing options...
thescientist Posted June 15, 2012 Share Posted June 15, 2012 if($_POST['username/email' !== ''){ echo $_POST['username/email'];}; //orforeach($_POST as $key => $value){ if($value != ''){ echo $value; }} Link to comment Share on other sites More sharing options...
jimfog Posted June 15, 2012 Author Share Posted June 15, 2012 if($_POST['username/email' !== ''){ echo $_POST['username/email'];}; //orforeach($_POST as $key => $value){ if($value != ''){ echo $value; }} Ok, I understand.But in order to make things clearer, I had the impression that in order to check if the fields of a form are field, someone might as use also isset. Am I wrong? Link to comment Share on other sites More sharing options...
justsomeguy Posted June 15, 2012 Share Posted June 15, 2012 You really only use isset to tell if the form was submitted at all. For checkboxes you use isset to tell if they checked the box, because if they didn't the browser won't submit anything for it. For normal fields you can just use a string comparison or the empty function, which will check for non-false values. Link to comment Share on other sites More sharing options...
jimfog Posted June 15, 2012 Author Share Posted June 15, 2012 You really only use isset to tell if the form was submitted at all. For checkboxes you use isset to tell if they checked the box, because if they didn't the browser won't submit anything for it. For normal fields you can just use a string comparison or the empty function, which will check for non-false values. Ok I got you, despite what are you saying nothing was happening...until I took a closer look and realized that there is an "issue" with the form: Instead of using <input type="button" value="Submit" /> I should have used <input name="submit" type="submit" /> The first does NOT submit the form in contrast with the second which DOES. So, the problem was that the form was not submitted at all. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now