Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL], Wyświetlanie w zależności od praw dostępu - problem
psimm
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.03.2009

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


Mam stronkę z prostym systemem logowania na bazie mysql i sesjach. Tabela "Users" zawiera pole "allows" określające poziom dostępu będący wartością liczbową TINYINT.

  1. <?php
  2.   $usr=$_SESSION['uzytkownik'];
  3.   $sel=mysql_query("SELECT allows FROM Users WHERE login='$usr'")
  4.     or die('Błąd zapytania');
  5.    if($sel==3) {
  6.    echo "<p>
  7.    <a href=\"users.php\">Użytkownicy</a>
  8.    </p>";
  9.    }
  10.  ?>


Powyżej fragment kodu pokazujący link w zależności od praw dostępu. Niestety kod nie działa i nic nie pokazuje sad.gif
Jeżeli zmienię "==" na ">","<", itp. to pokazuje... tylko że wszystkim bez wyjątku a nie użytkownikom z danymi prawami :/
Co robię źle i gdzie szukać rozwiązania?
Go to the top of the page
+Quote Post
nospor
post
Post #2





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




zobacz w manualu co zwraca mysql_query().....


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

"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
psimm
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.03.2009

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


Mój błąd, że nie sprawdziłem tongue.gif
Poczytałem i najlepszym wyjściem dla mnie wydaje się komenda mysql_result... tylko jak ją obsłużyć?

  1. <?php
  2.   $usr=$_SESSION['uzytkownik'];
  3.   $sel=mysql_query("SELECT allows,id FROM Users WHERE login='$usr'")
  4.   $wyn=mysql_result($sel,'id','allows');
  5.     or die('Błąd zapytania');
  6.    if($wyn==3) {
  7.    echo "<p>
  8.    <a href=\"users.php\">Użytkownicy</a>
  9.    </p>";
  10.    }
  11.  ?>


Tak wygląda to teraz i zwraca błąd: "Parse error: syntax error, unexpected T_VARIABLE in /var/www/sites/yoyo.pl/d/z/dzo-bw-rezerwacje/main.php on line 42". Zapewne błąd tkwi w numerze badanego wiersza ale nie mam pomysłu jak go pobrać dynamicznie znając tylko login użytkownika przekazywany w zmiennej sesyjnej. Jakaś podpowiedź? smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




ale czytaj co masz w manualu!!!
http://pl.php.net/manual/pl/function.mysql-result.php
i zobacz jakie przyjmujie parametry a jakie ty mu dajesz.

Co do bledu to nie:
$wyn=mysql_result($sel,'id','allows');
or die('Błąd zapytania');
a:
$wyn=mysql_result($sel,'id','allows')
or die('Błąd zapytania');


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

"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
psimm
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.03.2009

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


Oki, działa smile.gif Pomogło usunięcie średnika tongue.gif

Co do czytania, to przeczytałem. Jednak manual jest czasem dość niezrozumiale napisany. A swoją drogą to dobrze zrozumiałem składnię z manuala i błąd był tylko w średniku.

Tak czy siak dzięki smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




no wlasnie nie. w manualu jak wol masz napisane:
mixed mysql_result ( resource $wynik , int $wiersz [, mixed $ pole ] )
drugi parametr to wiersz (liczba)

a u ciebie:
$wyn=mysql_result($sel,'id','allows');

drugi parametr to napis 'id'
Dziala ci tylko dlatego ze php sam zrzutowal ci ten tekst na liczbe 0

powtarzam wiec: czytaj dokladnie manuala a juz w szczegolnosci gdy osoba z wiekszym doswiadczeniem zwroci ci na to uwage! tongue.gif


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

"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
psimm
post
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.03.2009

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


Cytat(nospor @ 12.03.2009, 12:15:43 ) *
no wlasnie nie. w manualu jak wol masz napisane:
mixed mysql_result ( resource $wynik , int $wiersz [, mixed $ pole ] )
drugi parametr to wiersz (liczba)

a u ciebie:
$wyn=mysql_result($sel,'id','allows');

drugi parametr to napis 'id'
Dziala ci tylko dlatego ze php sam zrzutowal ci ten tekst na liczbe 0

powtarzam wiec: czytaj dokladnie manuala a juz w szczegolnosci gdy osoba z wiekszym doswiadczeniem zwroci ci na to uwage! tongue.gif


a nie prawda tongue.gif nic nie zrzutował tylko przyjął dobrą wartość pola ID tongue.gif jakby ustawił stałą wartość "0" to działałoby tylko na pierwszym użytkowniku w bazie a działa na kilku losowo sprawdzonych tongue.gif
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




o litosci....
przeciez za kazdym razem zapytanie zwraca ci rekord i ten rekord ma zawsze index 0 niezależnie od nazwy usera.....

jak tak bardzo chcesz sie pokłócic to dzis jeszcze warnow nie rozdawalem aaevil.gif

edit:
wróć, jednego dziś dałem. ale to był ewidentny spamer to sie nie liczy winksmiley.jpg


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

"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
psimm
post
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.03.2009

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


no dobra, dobra smile.gif to ja tu jestem newbie tongue.gif
dzięki za pomoc merytoryczną smile.gif
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 Aktualny czas: 21.08.2025 - 01:57