formsender/formsender

HTTP-form sender PHP-class


License
LGPL-2.1

Documentation

Install FormSender:

Run console command in your project

composer require ivan-matthews/formsender

A Simple Example:

require vendor autoloader

in your home_page file (index.php,etc)

require "vendor/autoload.php";

and

load FormSender Class
use IvanMatthews\FormSender\FormSender;

Set form-action LINK

$link = 'http://mysite.com/';
Create REQUEST ARRAY
$request     = array(
    // POST / GET data to send
        'field_name'            => 'field_value',
        'other_field_name'      => 'other_field_value',
        'other_field_name_1'    => 'other_field_value_1',
        'other_field_name_2'    => 'other_field_value_3',
        'other_field_name_3'    => 'other_field_value_4',
        'other_field_name_4'    => 'other_field_value_5',
        'other_field_name_5'    => 'other_field_value_6',
        'value_without_field_name' // A $sender->prefix('prefix') will be inserted here
);
Create FILES ARRAY (if form-encoded will be multipart/form-data)
    $files         = array(
        'files'    => array(
            array(
                'file_name'        => basename([PATH/TO/FILE]),
                'file_type'        => mime_content_type([PATH/TO/FILE]),
                'file_value'       => file_get_contents([PATH/TO/FILE]),
            ),
            array(
                'file_name'        => basename([PATH/TO/FILE]),
                'file_type'        => mime_content_type([PATH/TO/FILE]),
                'file_value'       => file_get_contents([PATH/TO/FILE]),
            ),
            array(
                'file_name'        => basename([PATH/TO/FILE]),
                'file_type'        => mime_content_type([PATH/TO/FILE]),
                'file_value'       => file_get_contents([PATH/TO/FILE]),
            ),
            array(
                'file_name'        => basename([PATH/TO/FILE]),
                'file_type'        => mime_content_type([PATH/TO/FILE]),
                'file_value'       => file_get_contents([PATH/TO/FILE]),
            ),
        )
    );
    
OR one FILE
$files    = array(
            'file'    => array(
                'file_name'        => basename([PATH/TO/FILE]),
                'file_type'        => mime_content_type([PATH/TO/FILE]),
                'file_value'       => file_get_contents([PATH/TO/FILE]),
    );
Create $headers array
$headers = array(
   'Cookie'    => http_build_query(
                   array(
                       'cookie_key'    => 'cookie_val',
                       'cookie_key2'    => 'cookie_val2',
                       'cookie_key3'    => 'cookie_val3',
                   )
                  ),
   'User-Agent'    => 'Mozilla/Firefox'
);

Create multipart/form-data SENDER

    $sender = FormSender::Init();
    $sender->add_headers($headers);
    $sender->add_query($request);
    $sender->add_files($files);
    print $sender->post($link);

script returned

$Response_Page_Content; //    (string)

OR SEND application/x-www-form-urlencoded form

    $sender = FormSender::Init();
    $sender->add_headers($headers);
    $sender->add_query($request);
    print $sender->post($link);

script returned

$Response_Page_Content; //    (string)

Create sender with default parms:

// REQUEST_METHOD GET;

$sender = FormSender::Init();
    print $sender->get($link);

script returned

$Response_Page_Content; //    (string)

Get Response Headers:

    $sender = FormSender::Init();
    $sender->add_headers($headers);
    $sender->add_query($request);
    $sender->add_prefix('field_');
    //$sender->add_files($files);
    $sender->get_headers();
    print_r($sender->post($link));

script returned

array(
    'headers'    => 'Response Page Headers', //    (array)
    'content'    => 'Response Page Content'  //    (string)
);