Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sesja - zapamiętanie wyboru
djpotwosss
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

Ostrzeżenie: (0%)
-----


Witam,

Mam następujacy problem.
Stworzyłem sobie formularz wyboru dla niezalogowanych uzytkowników czy im wyświetlać daną treść czy nie. Próbuję zrobić zapamiętanie wyboru w sesji, jednak nie działa to poprawnie. Po każdym przeładowaniu strony użytkownik musi od nowa zaznaczyć wybór.

Poniżej skrypt.

  1. //WYBÓR
  2. if(empty($_POST['cenzor']))
  3. {
  4. $_SESSION['cenzor'] = '2'; //ustawiamy na sztywno wybór gdy użytkownik nic nie wybrał
  5. }
  6. else
  7. {
  8. $_SESSION['cenzor'] = $_POST['cenzor']; //wybór użytkownika
  9. }
  10.  
  11. //PRZETWORZENIE DANYCH
  12. if (($_SESSION['cenzor'])==1)
  13. {
  14. $cenzorkategoria='';
  15. }
  16. else if(($_SESSION['cenzor'])==2)
  17. {
  18. $cenzorkategoria='jakis tekst';
  19. }
  20.  
  21. //FORMULARZ WYBORU
  22. <form method='post' width='100' action='<?=$_SERVER['REQUEST_URI'];?>' >
  23. <select name='cenzor' onChange="this.form.submit()">
  24. <option value='1' <?php if ( $_SESSION['cenzor'] == '1' ) { $_SESSION['cenzor'] == '1'; echo 'selected="selected"'; }?> >Tak</option>
  25. <option value='2' <?php if ( $_SESSION['cenzor'] == '2' ) { $_SESSION['cenzor'] == '2'; echo 'selected="selected"'; } ?> > NIE</option>
  26.  
  27. </select></form>
  28.  


Jak ugryźć ten problem ?
Go to the top of the page
+Quote Post
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


jest?
Go to the top of the page
+Quote Post
djpotwosss
post
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

Ostrzeżenie: (0%)
-----


Oczywiście, że jest (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
markuz
post
Post #4





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Zamiast:
  1. if(empty($_POST['cenzor'])) {}

Wstaw:
  1. if(empty($_POST['cenzor']) && !isset($_SESSION['cenzor'])) {}
Go to the top of the page
+Quote Post
djpotwosss
post
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

Ostrzeżenie: (0%)
-----


Po dodaniu tego mam ciekawe zachowanie skryptu. Teraz skrypt naprzemiennie wybiera TAK lub NIE po każdym odświeżeniu (IMG:style_emoticons/default/smile.gif) Wcześniejsza wersja trzymała wybór aż do odświeżenia, przeładowania strony
Go to the top of the page
+Quote Post
markuz
post
Post #6





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


  1. if(!isset($_SESSION['cenzor']))
  2. $_SESSION['cenzor'] = '2';
  3.  
  4. if(isset($_POST['cenzor']))
  5. $_SESSION['cenzor'] = $_POST['cenzor'];

A tak?

Jak nie działa to pokaż skrypt po poprawkach.

Ten post edytował markuz 21.07.2015, 16:33:57
Go to the top of the page
+Quote Post
djpotwosss
post
Post #7





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

Ostrzeżenie: (0%)
-----


@markuz, Wielkie dzięki! Teraz działa (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 13:17