Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie sesji
Forum PHP.pl > Forum > PHP
pitu
Witam

Wykonuję formularz wyszukiwarki. Wyniki są przesyłane po zmiennej POST, w wynikach mam stronicowanie. Po przejściu np. na drugą stronę normalnie nie przekazuje przesłanych wcześniej zmiennych, więc zastosowałem sesję i jest niby dobrze.

Wykonałem to tak:
  1. if(isset($_SESSION['marka'])){
  2. $_POST['marka'] = $_SESSION['marka'];
  3. }
  4. else {
  5. $_SESSION['marka'] = $_POST['marka'];
  6. }


Problem pojawia się jeżeli chcę jeszcze raz coś wyszukać, oczywiście zapamiętana w sesji jest stara zmienna i szuka właśnie jej. Czy jest jakiś sposób aby po wyjściu na kasowanie sesji po każdym wyszukaniu i nadpisanie jej nową wartością?
mortus
Bo to raczej powinno wyglądać inaczej:
  1. if(isset($_POST['marka']) && $_POST['marka'] != '') {
  2. $_SESSION['marka'] = $_POST['marka'];
  3. }

a dalej w skrypcie powinieneś się posługiwać zmienną z tablicy $_SESSION, a nie z tablicy $_POST.
Przejście na kolejną stronę wyników wyszukiwania nie powinno się wiązać z ponownym przesłaniem szukanej frazy przez $_POST, bo ona jest już zapisana w tablicy $_SESSION.

EDIT: Jeśli spełnisz powyższe warunki, to nie będzie problemu z wyszukiwaniem nowej frazy, bo warunek instrukcji warunkowej będzie spełniony podczas każdego wyszukiwania.
pitu
Dzięki wielkie, teraz działa bardzo dobrze. W warunku wkradł się tylko jeden zamykający nawias za dużo.
modern-web
A tak na boku zapytam; zabezpieczyłeś sesje? Bo tak na dobrą sprawę 90% programistów nie zdaje sobie sprawy z niebezpieczeństw jakie to za sobą niesie..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.