Skip to content

Commit 380b7dc

Browse files
author
Antti Kuosmanen
committed
Check the $_FILES array for required fields, fixes #32
1 parent 61edd18 commit 380b7dc

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

inc/wplf-form-validation.php

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,24 @@ function wplf_validate_required_empty( $return ) {
3030

3131
// get required fields from form
3232
$required = explode( ',', get_post_meta( $_POST['_form_id'], '_wplf_required', true ) );
33+
34+
// make sure required form fields are submitted within $_POST or $_FILES arrays
3335
$fields_empty = array();
3436
foreach( $required as $key ) {
35-
if( ! array_key_exists( $key, $_POST ) || empty( $_POST[$key] ) ) {
37+
if(
38+
( !array_key_exists( $key, $_POST ) && !array_key_exists( $key, $_FILES ) ) ||
39+
( empty( $_POST[$key] ) && ! ( $_FILES[$key]['size'] > 0 ) )
40+
) {
41+
// required field wasn't in $_POST or $_FILES
42+
// we also don't accept files that are 0 bytes long
3643
$fields_empty[] = $key;
3744
}
3845
}
3946
$fields_empty = array_filter( $fields_empty ); // get rid of the empty keys
4047

41-
if( ! empty( $fields_empty ) ) {
48+
$return->debug = $_FILES;
49+
50+
if(! empty( $fields_empty ) ) {
4251
$return->ok = 0;
4352
$return->error = __('Required fields are missing.', 'wp-libre-form');
4453
$return->fields_empty = $fields_empty;

0 commit comments

Comments
 (0)