Ci sono diverse soluzioni, io ad esempio faccio cosi
1) la prima volta che l'utente arriva sul sito, creo una variabile di sessione con un id univoco
2) pagina html con il form di ricerca
3) pagina intermedia php che prende i dati, estrae i record che soddisfano la ricerca, li memorizza nel database (una tabella "results" con i campi "session_id", "product_id")
4) fatto questo, la pagina invia un header("Location: results.php");
5) results.php è una pagina che, sfruttando l'id univoco (tanto è in sessione), estrae i dati dal database e li propone all'utente.
Se da results.php l'utente clicca su "back", viene portato dal browser nella pagina html, la pagina php intermedia è bypassata.

Di solito a questa soluzione, abbino anche un processo automatico che ogni giorno cancella le sessioni piu vecchie di 24 ore, altrimenti la tabella ti diventa enorme.