Php input validation - exact input only

Hey

I am struggling in trying to find a solution for the above problem. I have a simple html form and have some php code set up to validate the user input. Below is an example of how i am validating one particular field:

function validateField1($field1){
        //if it's NOT valid
        if(strlen($field1) < 1)
            return false;
        if(!preg_match('/^[A-Za-z0-9 ]+$/', $field1))
        return false;
        //if it's valid
        else
                return true;
        

So for that field if the user fails to enter anything or if they include anything other than Lower/Uppercase letters, numbers and a space then the script returns false and brings up the error.

Now i am trying to set up some fields where by the user must match their input with an exact string that i will set for it to correctly validate otherwise it will flag an error.

So for example on ‘field 2’ - the user must enter the input of ‘red’ or ‘blue’ or ‘green’ or ‘pink’. Anything other than either 1 of these will not be passed.

Now i know instantly from that it would seem i should just use the ‘select name’ and ‘option’ values for my html to just have those 4 options in a drop down list to select but it needs to be a typed user input not selected from a list.

Am i able to add exact terms into the above validation example or do i need to use a different technique? I have a feeling that it might be best to use MySql with this in the form of a database but i unfortunately have no knowledge of this language at present…

Is anyone able to help me out on this one?

Many thanks

Jon