Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Validating Select Box with PHP?

I have coded in PHP but today for the first time I needed to validate a select box and am shocked to realise I am not actually sure how to. Basically this is my HTML: (ignore the session stuff in the code)

<label for="gender">Gender</label>
<select id="gender" name="gender" class="select option">
<option<?php if( $_SESSION['gender'] === "" ) { echo ' selected="selected"'; } ?>  value="">&nbsp;</option>
<option<?php if( $_SESSION['gender'] === "Male" ) { echo ' selected="selected"'; } ?> value="Male">Male</option>
<option<?php if( $_SESSION['gender'] === "Female" ) { echo ' selected="selected"'; } ?> value="Female">Female</option>
</select>

Basically I wrote the php code below thinking it would validate it but whether I tamper with the values or not in browser using Firebug it always returns gender not valid error.

The rest of my edit profile form works fine so does the select box (without validation) but obviously I need to validate it as the male, female or nothing is updated in database on user profile. I do mysql_real_escape string etc but not added that here just out of simplicity etc.

$gender = $_POST['gender'];

if(!empty($gender) && $gender != "Male" || $gender != "Female"){
    $error[] = "Gender not valid";
}

If someone could please explain how I check the values from select box to ensure they not been tampered with and contain male, female or no value that would be much appreciated. Maybe I am doing it the wrong way.

like image 712
PHPLOVER Avatar asked Oct 24 '25 15:10

PHPLOVER


1 Answers

A simpler method would be to compare the variable against a list of allowed values:

if (!in_array($gender, array("", "Male", "Female"))) {
    $error[] =

Note how the array list also includes the empty "" string.

like image 72
mario Avatar answered Oct 26 '25 05:10

mario



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!