Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie jako admin
Forum PHP.pl > Forum > PHP
Seraph
  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.
kossa
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
Denver
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.
free
Denver co w podanym przez ciebie kodzie jest niebezpiecznego ?
Pytam bo sam uzywam zapytanie w tej formie.
piwoszeq
jako przyczepiony temat masz sql Injection.
oblukaj sobie smile.gif
Seraph
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
Denver
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.
kossa
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
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.