Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy is my form validation not working?
    text
    copied!<p>I'm having troubles validating my form. How do I validate the form using PHP? I've tried lots of different methods and nothing has worked. I can get the inputs to display (although check-box doesn't always display) but it just won't validate.</p> <p>I also want to display the user's inputs (after it has been validated) onto another page, how do I do that? </p> <p>Here is my code;</p> <p>Form: </p> <pre><code>&lt;form action="&lt;?php $_SERVER['PHP_SELF'];?&gt;" method="post"&gt; &lt;label for="name"&gt;Your Name:&lt;/label&gt; &lt;input type="text" name="name" id="name" value="" required&gt; &lt;br&gt;&lt;br&gt; &lt;label for="email"&gt;Your Email:&lt;/label&gt; &lt;input type="text" name="email" id="email" value="" required&gt; &lt;br&gt; &lt;br&gt; &lt;label for="subject"&gt;Subject:&lt;/label&gt; &lt;input type="text" name="subject" id="subject" value="" required&gt; &lt;br&gt; &lt;br&gt; Recipient: &lt;div&gt; &lt;label for="admin"&gt; &lt;input type="checkbox" name="recipient[]" id="admin" value="Administrator"&gt; Administrator&lt;/label&gt; &lt;br&gt; &lt;label for="editor"&gt; &lt;input type="checkbox" name="recipient[]" id="editor" value="Content Editor"&gt; Content Editor&lt;/label&gt; &lt;br&gt; &lt;/div&gt; &lt;br&gt; &lt;label for="message"&gt;Message:&lt;/label&gt; &lt;br&gt; &lt;textarea name="message" id="message" cols="45" rows="5" required&gt;&lt;/textarea&gt; &lt;input type="hidden" name="submitted" value="1"&gt; &lt;br&gt; &lt;input type="submit" name="button" id="button" value="Send"&gt; &lt;br&gt; &lt;/form&gt; </code></pre> <p>PHP:</p> <pre><code>&lt;?php $name = $_POST['name']; $email = $_POST['email']; $subject = $_POST['subject']; $message = $_POST['message']; if ($_POST['submitted']==1) { if ($_POST['name']){ $name = $_POST['name']; } else{ echo "&lt;p&gt;Please enter a name.&lt;/p&gt;" ; } if (preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", $email)) $email = $_POST['email']; } else{ echo "&lt;p&gt;Please enter a valid email.&lt;/p&gt;"; } if ($_POST['subject']){ $subject = $_POST['subject']; } else{ echo "&lt;p&gt;Please enter a subject.&lt;/p&gt;"; if(empty($_POST['recipient'])){ echo "&lt;p&gt;Please select a recipient&lt;/p&gt;"; }else{ for ($i=0; $i &lt; count($_POST['recipient']);$i++) { echo $_POST['recipient'][$i] . " "; } } } if ($_POST['message']){ $message = $_POST['message']; } /* go to form.php display results echo "&lt;strong&gt;Your Name:&lt;/strong&gt; ".$name. "&lt;br /&gt;"; echo "&lt;strong&gt;Your Email:&lt;/strong&gt; ".$email. "&lt;br /&gt;"; echo "&lt;strong&gt;Subject:&lt;/strong&gt; ".$subject. "&lt;br /&gt;"; echo "&lt;strong&gt;Recipient:&lt;/strong&gt; "; echo "&lt;br /&gt;"; echo "&lt;strong&gt;Message:&lt;/strong&gt; &lt;br /&gt; " .$message; */ ?&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload