フォームの送信元の URL をセッション変数に格納し、それを現在のページの URL と比較する PHP スクリプトがあります。セッションに保存されているものと同じでない場合は、設定が解除されますが、少なくともそれが機能するはずです。問題は、2 つの URL が一致するかどうかを確認するために使用される if ステートメントが無視されているように見え、とにかくセッション変数が設定解除されることです。
$compare_url_old = array_shift(explode(',', $_SESSION['search_page']));
$compare_url_new = array_shift(explode(',', $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']));
if ($compare_url_new != $compare_url_old)
{
unset($_SESSION['search_page']);
unset($_SESSION['search_price_min']);
unset($_SESSION['search_price_max']);
unset($_SESSION['search_name']);
}
奇妙な部分は、if ステートメント内で何かをエコーしようとすると、正常に動作しますが、何らかの理由で、結果にもかかわらず、設定されていない関数が毎回呼び出されることです。