Are there alternative methods to using sessions to preserve POST variables when navigating through search results in PHP?

When navigating through search results in PHP, an alternative method to using sessions to preserve POST variables is to append the POST data to the URL as query parameters. This way, the POST data can be passed along with each request without relying on sessions.

// Check if form was submitted
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // Redirect to search results page with POST data appended to URL
    header("Location: search_results.php?" . http_build_query($_POST));
    exit();
}

// Retrieve POST data from query parameters if available
if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET)) {
    $_POST = $_GET;
}

// Access POST data as usual
$search_query = $_POST["search_query"];