views:

51

answers:

1

I'm trying to validate some POST data. One of the validations I need to do is a registration code, which is based off another POST variable - an IMEI number.

In my POST data I have 2 fields, register_imei and register_code. My code currently looks like this:

$post = Validate::factory($_POST);

$post->rule('register_imei', 'not_empty')
     ->rule('register_imei', 'exact_length', array(15))
     ->rule('register_imei', 'some_class::luhn_check');

$post->rule('register_code', 'not_empty')
     ->rule('register_code', 'some_class::valid_registration_code', array($_POST['register_imei']));

However, I'm not sure whether passing in the variable from the raw POST array field is ok, because it could be empty or not set. Does the fact that I've already added validation rules for register_imei above make it safe?

A: 

Does the fact that I've already added validation rules for register_imei above make it safe?

No validation is taken place until you call the check() method.

To solve your problem, use:

Arr::get($_POST, 'register_imei', NULL);

which returns the 3rd argument as a default if the key is not set in the array.

The Pixel Developer
Thank you. Much appreciated.
Rowan Parker