Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] sesja i informacje
Forum PHP.pl > Forum > Przedszkole
uncuncunc
Jak zrobić prosty system informowania?

  1. if()... // tu sprawdzam czy formularz został poprawnie wysłany bez błędów, jeśli tak, to ustanawiam sesje info na true i następuje przekierowanie header
  2.  
  3. if(isset($_SESSION['info']))
  4. {
  5. echo '<div>informacja</div>';
  6. }


I pytanie, jak teraz usunąć tę informację np. jak ponownie wejdę na tę samą stronę.
  1. unset($_SESSION['info'])
dodany na samym końcu, nie pomaga, w ogóle nie jest widziana informacja...
nospor
  1. if(isset($_SESSION['info']))
  2.  
  3. {
  4.  
  5. echo '<div>informacja</div>';
  6. unset($_SESSION['info']);
  7. }
Adi32
  1. class Message {
  2. public static function set($message) {
  3. $_SESSION['messages'][] = $message;
  4. }
  5.  
  6. public static function get() {
  7. if ($_SESSION['messages']) {
  8. $temp = $_SESSION['messages'];
  9. unset($_SESSION['messages']);
  10. return $temp;
  11. }
  12. }
  13. }
  14.  
  15. # np po zalogowaniu
  16. Message::set('Zostałeś poprawnie zalogowany');
  17.  
  18. # a gdzieś w indexie (zawsze widocznym miejscu)
  19.  
  20. if ($messages = Message::get())
  21. foreach($messages as $message) {
  22. echo $message;
  23. }
  24.  
uncuncunc
Cytat(nospor @ 6.09.2012, 14:13:46 ) *
  1. if(isset($_SESSION['info']))
  2.  
  3. {
  4.  
  5. echo '<div>informacja</div>';
  6. unset($_SESSION['info']);
  7. }



Nie zadziała, jeśli pierw wcześniej ustalę i dam header

  1. $_SESSION['info'] = true;
  2. header(...) // przekierowanie
nospor
Co nie zadziała? unset? No jeśli gdzieś zaraz po unset na nowo coś przypiszesz, to logiczne, ze nadal coś tam będzie smile.gif
uncuncunc
Wygląda to tak:

  1. if() // sprawdzam czy wyslano formularz
  2. {
  3. if() // sprawdzam czy nie zawiera bledow
  4. {
  5. $_SESSION['info'] = true;
  6. header(...) // przekierowanie
  7. }
  8.  
  9.  
  10. }
  11.  
  12. if(isset($_SESSION['info']))
  13. {
  14. echo '<div>informacja</div>';
  15. unset($_SESSION['info']);
  16. }


header przekierowuje na tę samą stornę, jeśli usuną header to działa dobrze, tylko że sesja jest cały czas widoczna...
nospor
Po header ma być exit;
b4rt3kk
Może zamiast przekierowywaniem na tę samą stronę, zapewne w celu jej odświeżenia, zastanów się nad użyciem JS lub jQuery?
uncuncunc
Cytat(nospor @ 6.09.2012, 15:44:35 ) *
Po header ma być exit;


Asz kurde, widzisz... Taka mała pierdoła... biggrin.gif

Cytat
Może zamiast przekierowywaniem na tę samą stronę, zapewne w celu jej odświeżenia, zastanów się nad użyciem JS lub jQuery?

Odpada, mechanizm ma być natywny.
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.