What best practices should be followed when passing search criteria between paginated pages in PHP?

When passing search criteria between paginated pages in PHP, it is best practice to use sessions or query parameters to store and retrieve the search criteria. This ensures that the criteria remains consistent across different pages of search results. Additionally, it is important to properly sanitize and validate the search criteria to prevent any security vulnerabilities.

// Start the session
session_start();

// Store search criteria in session
$_SESSION['search_criteria'] = $_POST['search_criteria'];

// Retrieve search criteria from session
$search_criteria = isset($_SESSION['search_criteria']) ? $_SESSION['search_criteria'] : '';

// Use the search criteria in your query
$query = "SELECT * FROM products WHERE name LIKE '%$search_criteria%'";