Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Problem ze statusem dla zalogowanego i niezalogowanego
roobik
post 13.06.2017, 12:16:49
Post #1





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Cześć.
Mam "mały" problem z wyświetlaniem zawartości strony dla zalogowanego i niezalogowanego. Teoretycznie sprawa jest bardzo prosta, lecz niestety ja już siedzę nad tym parędni i już mi się pomysły skończyły.
Na początek o co chodzi:

status=0 => materiał widoczny dla wszystkich
status=7 => materiał widoczny dla zalogowanych, ALE:
gdy chce go oglądać niezalogowany, to zamiast materiału pokazuję info
gdy zalogowany - widzi materiał (czyli nie widzi info dla niezalogowanego)

Czyli inaczej mówiąc:
- zalogowany widzi status 0 dla wszystkich i status 7 dla zalogowanego
- niezalogowany widzi status 0 dla wszystkich i status 7 dla niezalogowanego
(w przypadku niezalogowanego - widzi on informację zamiast treści z bazy)

I teraz tak:
  1. if(is_user_login()=='yes') $result = mysql_query("SELECT * FROM tabela WHERE id='$id' AND (status='0' AND status='7'");
  2. elseif(is_user_login()<>'yes') $result = mysql_query("SELECT * FROM tabela WHERE id='$id' AND status='0'");

I już wiecie o co chodzi...
Bez sensu jest dać w drugim zapytaniu:
  1. elseif(is_user_login()<>'yes') $result = mysql_query("SELECT * FROM tabela WHERE id='$id' (status='0' AND status='7'");




Gdy natomiast dam tak:
  1. elseif(is_user_login()=='yes')$result = mysql_query("SELECT * FROM tabela WHERE id='$id' AND status='7'");
  2. elseif(is_user_login()<>'yes')$result = mysql_query("SELECT * FROM tabela WHERE id='$id' AND status='0'");
  3. elseif(is_user_login()=='yes')$result = mysql_query("SELECT * FROM tabela WHERE id='$id' AND status='7'");

to:
- zalogowany widzi status 7 (z treścią z bazy - i to jest OK), ale nie widzi statusu 0 (to nie jest OK, bo status 0 jest dla wszystkich)
- niezalogowany nie widzi statusu 7, tj. informacji dla niezalogowanego (to nie jest OK), ale widzi status 0 (to jest OK).

I jak to rozwalić?

Nie wiem, być może to błahostka... Może po prostu czegoś "nie widzę", albo zabieram siędo tego nie tak... Pomóżcie proszę...
Go to the top of the page
+Quote Post
nospor
post 13.06.2017, 12:22:28
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Z logika widze u ciebie kiepsko (patrzac na te IFy) wink.gif
zas kody jak ten
is_user_login()=='yes'
gdzie funkcja zamiast zwrocic true lub false zwraca napis 'yes' to juz w ogole wolaja o pomste do nieba wink.gif

A czemu poprostu nie pobierzesz tego zasobu bez zadnych warunkow w zapytaniu, a dopiero potem w kodzie php dasz if, ktore sprawdzi czy user ma prawo to widziec czy nie?

ps: przenosze


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
roobik
post 13.06.2017, 13:26:18
Post #3





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Cytat(nospor)
A czemu poprostu nie pobierzesz tego zasobu bez zadnych warunkow w zapytaniu, a dopiero potem w kodzie php dasz if, ktore sprawdzi czy user ma prawo to widziec czy nie?

Qtva.... no właśnie smile.gif Skupiłem się na tych statusach i grzebałem przy nich właśnie. O zapytaniu bez warunków, a dopiero później dać ify nie pomyślałem nawet... Jakaś pomroczność jasna wink.gif

Dzięki nosporexclamation.gif! smile.gif

Pozdrawiam!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 14:59