What are the different ways to send POST variables to a PHP script without using a form tag?

When sending POST variables to a PHP script without using a form tag, you can use methods such as using cURL to make a POST request, using AJAX to send data asynchronously, or using the PHP `file_get_contents` function with stream context to send POST data. These methods allow you to send POST variables programmatically without the need for a form tag in your HTML.

// Using cURL to send POST variables
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/script.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(['key1' => 'value1', 'key2' => 'value2']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

// Using AJAX to send POST variables
$.ajax({
    type: 'POST',
    url: 'script.php',
    data: {key1: 'value1', key2: 'value2'},
    success: function(response) {
        console.log(response);
    }
});

// Using file_get_contents with stream context to send POST variables
$data = http_build_query(['key1' => 'value1', 'key2' => 'value2']);
$options = [
    'http' => [
        'method' => 'POST',
        'header' => 'Content-type: application/x-www-form-urlencoded',
        'content' => $data
    ]
];
$context = stream_context_create($options);
$response = file_get_contents('http://example.com/script.php', false, $context);