Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie jako admin, nie jako zwykły user
Seraph
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 16.08.2006
Skąd: Bochnia

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


  1. <?php
  2. function czyZalogowany() {
  3. return isset($_SESSION['authorized']);
  4. }
  5.  
  6. // proces logowania - loguje zwyklych uzytkownikow
  7. if (isset($_POST['username'])) {
  8.  
  9. $logowanie = @mysql_query(" SELECT name, password FROM user");
  10.  
  11. while ($log = mysql_fetch_array($logowanie)) {
  12. $user = $log['user'];
  13. $pass = $log['password'];
  14. if ($_POST['username'] == $user and
  15. $_POST['password'] == $pass) {
  16. $_SESSION['authorized'] = TRUE; }
  17. ?>


ww kod loguje zwykłego użytkownika, problem w tym, że chciałbym zrobić też dodatkowe funkcje dla admina i nie wiem czy muszę stworzyć do tego nową sesję czy coś innego. W chwili obecnej panel administracyjny wymaga sesji 'authorized' z czego wynika, że jest dostępny dla każdego zalogowanego użytkownika.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


przykladowe rozwiazanie: dodaj do tabeli w bazie pole np. typ i tam 1 - admin, 2 - user

przy logowaniu sprawdzaj jaki typ, wartosc zapisuj w sesji i wiesz wówczas juz wszystko

Łukasz


--------------------
Go to the top of the page
+Quote Post
Denver
post
Post #3





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Giżycko / Wrocław

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


Poza tym Twó skrypt logowania pozostawia wiele do życzenia smile.gif Po co wybierać z bazy danych wszystkich użytkowników i porównywać z loginem i hasłem, skoro możesz już to zrobić w samym zapytaniu:
  1. SELECT name, password FROM user WHERE user = $_POST['username'] AND password = $_POST['password']

Oczywiście to tylko przykładowy kod, brak mu zabezpieczenia przed SQL Injection itd., ale sedno chyba już łapiesz.


--------------------
Go to the top of the page
+Quote Post
free
post
Post #4





Grupa: Zarejestrowani
Postów: 269
Pomógł: 0
Dołączył: 6.02.2006

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


Denver co w podanym przez ciebie kodzie jest niebezpiecznego ?
Pytam bo sam uzywam zapytanie w tej formie.
Go to the top of the page
+Quote Post
piwoszeq
post
Post #5





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 13.01.2005
Skąd: warszawa

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


jako przyczepiony temat masz sql Injection.
oblukaj sobie smile.gif
Go to the top of the page
+Quote Post
Seraph
post
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 16.08.2006
Skąd: Bochnia

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


Cytat(Denver @ 29.08.2006, 14:49:52 ) *
  1. SELECT name, password FROM user WHERE user = $_POST['username'] AND password = $_POST['password']


wyskakuje mi przy tym error:
parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in (plik) on line (linia zapytania)

dry.gif


--------------------
Go to the top of the page
+Quote Post
Denver
post
Post #7





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Giżycko / Wrocław

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


Przecież napisałem, że to przykładowy kod - chodzi o ten warunek WHERE. Nie jest poprawny, ale przy odrobinie chęci poprawisz swój awydajny skrypt logowania na ten powyższy.


--------------------
Go to the top of the page
+Quote Post
kossa
post
Post #8





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


Cytat(Seraph @ 30.08.2006, 01:35:24 ) *
wyskakuje mi przy tym error:
parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in (plik) on line (linia zapytania)

dry.gif



  1. <?php
  2. $zapytanie="SELECT name, password FROM user WHERE user = ".$_POST['username']." AND password = ".$_POST['password']." ";
  3. ?>


Łukasz


--------------------
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 - 18:29