best way to check if button pressed and text box as no value

Hi what is the best way to check an empty text box

at the moment im using

if ($_POST['sel_search'] && $_POST['prt_list']==""){

            elseif ($_POST['prt_list']!=""){


thanks in advance
Who is Participating?
RoonaanConnect With a Mentor Commented:
I would suggest:

if(isset($_POST['sel_search']) && !empty($_POST['prt_list'])) {

I'm not sure you can get much better than what you have.
TeRReFConnect With a Mentor Commented:
Well, to rule out spaces, you could use:
if ($_POST['sel_search'] && trim($_POST['prt_list'])==""){

          elseif (trim($_POST['prt_list'])!=""){

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

ljubiccicaConnect With a Mentor Commented:

i would use
if(isset($_POST['sel_search']) && $_POST['prt_list']=="")

AutogardConnect With a Mentor Commented:
My only suggestion would to stay consistent in your code.  If you are checking == "" and != "" I would also use:

if ($_POST['sel_search'] != ""
ixtiConnect With a Mentor Commented:
In addition to comments above:

1. If form was submitted from your site and form has text box named 'my_text', then even i it will be empty on submit, then it will be always set. So you don't have to check every field is it was set or not. I mean:
    // We need to check if one of fields were submitted only once, just to be sure
    // if form was submitted. You can give a name to submit button, so you'll be able
    // to check if form was submitted, but for me it's much easier to check one of
    // input fields, just because i never use value of submit buttons.
    if (isset($_POST['var1'])) {
      $error = array();
      if ('' == trim($_POST['var1'])) $error[] = 'Var1 is empty';
      if ('' == trim($_POST['var2'])) $error[] = 'Var2 is empty';
      if ('' == trim($_POST['var3'])) $error[] = 'Var3 is empty';
      if ('' == trim($_POST['var4'])) $error[] = 'Var4 is empty';
      if (0 < count($error)) {
        foreach($error as $msg) echo 'Error: ' . $msg . '<br />\n';
      } else {
        // ... here we can do any actions with submitted data ... :))

  <form method="POST">
  <input type="text" name="var1" />
  <input type="text" name="var2" />
  <input type="text" name="var3" />
  <input type="text" name="var4" />
  <input type="submit" value="submit" />

2. The main what you have to do is to check where from was processed from, just to encrease security. I suggest you to read PHP Security Guide ( for getting more info about security in PHP.

3. You can use my simple class to process forms: It's undocumented but it's really simple, and you'll find an example there wich will explain almost everything :))
aminerdConnect With a Mentor Commented:
Also, remember that == does not compare types; consider:

$test = 0;
if ($test == '') echo 'Nothing';

$test = NULL;
if ($test == '') echo 'Nothing';

$test = FALSE;
if ($test == '') echo 'Nothing';

You'll get three "Nothing"s. NULL and FALSE may not be an issue, but if you need to allow for zeros, you'll want to try a different route. For instance, the === operator, which IS type-sensitive.
Values processed by form is always STRINGS. So if you'll use type-sensitive === operator then you'll have some troubles.

For example:
<input type="text" name="int" />
<input type="submit" value="go" />

if you'll enter 123 to this form and press submit button, you'll have:
$_GET['int'] = '123';
not integer 123, but string '123':

if ($_GET['int'] === 123) { echo 'This won't work anyway!'; }
if ($_GET['int'] === '123') { echo 'This works!'; }
if ($_GET['int'] == '123') { echo 'And this works!'; }
if ($_GET['int'] == 123) { echo 'And this works too!'; }

If you will not input anything in that field, then $_GET['int'] will be '', not NULL:
if ($_GET['int'] === NULL) { echo 'This won't work anyway!'; }
if ($_GET['int'] === '') { echo 'This works!'; }
if ($_GET['int'] == '') { echo 'And this works!'; }

And if you'll put false (or true) in that field, it will also be 'false' or 'true', noy bollean false ore true:
if ($_GET['int'] === false) { echo 'This won't work anyway!'; }
if ($_GET['int'] == false) { echo 'This won't work too!'; } // Note this!
if ($_GET['int'] === 'false') { echo 'This works!'; }
if ($_GET['int'] == 'false') { echo 'And this works!'; }
mazzachreConnect With a Mentor Commented:
If you are concerned about performance on the server I would use a small javascript to test the fields before submitting the form.
avo42Author Commented:
Hi all

what would be the simplyes method to do that as i dont know javascript at all

thanks all for your input
You cannot rely on javascript solely. Mazzachre should know better.

There are plenty people who are not using javascript and therefor can enter unvalidated data unless you also validate serverside.

All Courses

From novice to tech pro — start learning today.