Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Logowanie jako administrator
kona79
post 6.11.2012, 01:38:26
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.11.2012

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


Witam, chciałbym dodać na stronie mały panel administratora. Staram się dodać warunek żeby po zalogowaniu się na admina wyświetlało mi się zupełnie inne okno: admin.php.
Warunek może być albo po ID=1 albo po loginie: admin. Bardzo proszę o pomoc, trochę się już z tym męczę

Kod
session_start();

require_once 'config.php';

$Message = "";


if (empty($_POST['login']) || empty($_POST['haslo']))
{
    $Message = "Login lub hasło jest puste!";
    header('location: index.php?Message='.$Message);
    exit;
}  


$wynik = mysql_query("select * from users where Login = '".$_POST['login']."'");

$ilosc_wynikow =  mysql_num_rows($wynik);

if ($ilosc_wynikow == 0)
{
    $Message = "Podany użytkownik nie istnieje!";
    header('location: index.php?Message='.$Message);        
}
else {

    while ($row = mysql_fetch_assoc($wynik)) {
  
        if ($row['Password'] == md5($_POST['haslo']))
        {
            $_SESSION['zalogowany'] = TRUE;
            $_SESSION['login'] = $row['Login'];
            $_SESSION['email'] = $row['Email'];
            
            $Message = "Zostałeś zalogowany!";
            header('location: index.php?Message='.$Message);
        } else {
            $Message = "Podane hasło jest błędne!";
            header('location: index.php?Message='.$Message);            
        }

    }
}
Go to the top of the page
+Quote Post
b4rt3kk
post 6.11.2012, 01:42:33
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Dodaj w tabeli coś w rodzaju rangi, to lepsze rozwiązanie. Natomiast na podstawie tego co tutaj masz:

  1. if ($row['Password'] == md5($_POST['haslo']))
  2. {
  3. $_SESSION['zalogowany'] = TRUE;
  4. $_SESSION['login'] = $row['Login'];
  5. $_SESSION['email'] = $row['Email'];
  6.  
  7. if ($_SESSION['login'] == 'admin') header('location: panel_admina.php');
  8. }


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
kona79
post 6.11.2012, 01:50:59
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.11.2012

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


Niestety nie pomogło, ponieważ na stronie index po zalogowaniu wyświetla mi się komunikat "ze zostałem zalogowany"
Kod
$Message = "Zostałeś zalogowany!";
            header('location: index.php?Message='.$Message);

Czyli w tej chwili rezultat jest taki jak przy logowaniu na zwykłego użytkownika.
Go to the top of the page
+Quote Post
b4rt3kk
post 6.11.2012, 02:15:55
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(kona79 @ 6.11.2012, 01:50:59 ) *
Niestety nie pomogło, ponieważ na stronie index po zalogowaniu wyświetla mi się komunikat "ze zostałem zalogowany"
Kod
$Message = "Zostałeś zalogowany!";
            header('location: index.php?Message='.$Message);

Czyli w tej chwili rezultat jest taki jak przy logowaniu na zwykłego użytkownika.


Więc najwidoczniej nie logujesz się jako admin (login). Jest milion sposobów na osiągnięcie tego co potrzebujesz i nie jest to specjalnie skomplikowane.

  1. require_once 'config.php';
  2.  
  3. if (empty($_POST['login']) || empty($_POST['haslo']))
  4. {
  5. $Message = "Login lub hasło jest puste!";
  6. header('location: index.php?Message='.$Message);
  7. } else {
  8. $wynik = mysql_query("select * from users where Login = '{$_POST['login']}'");
  9.  
  10. if (mysql_num_rows($wynik) == 0)
  11. {
  12. $Message = "Podany użytkownik nie istnieje!";
  13. header('location: index.php?Message='.$Message);
  14. }
  15. else {
  16. $row = mysql_fetch_assoc($wynik));
  17.  
  18. if ($row[0]['Password'] == md5($_POST['haslo']))
  19. {
  20. $_SESSION['zalogowany'] = TRUE;
  21. $_SESSION['login'] = $row[0]['Login'];
  22. $_SESSION['email'] = $row[0]['Email'];
  23.  
  24. if ($row[0]['id'] == 1 OR strtolower($row[0]['login']) == 'admin') {
  25. header('location: admin.php');
  26. } else {
  27.  
  28. $Message = "Zostałeś zalogowany!";
  29. header('location: index.php?Message='.$Message);
  30.  
  31. }
  32. } else {
  33. $Message = "Podane hasło jest błędne!";
  34. header('location: index.php?Message='.$Message);
  35. }
  36. }
  37. }


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
kona79
post 6.11.2012, 02:42:56
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.11.2012

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


Dziękuje za szybką pomoc, nie wiem czemu ale dalej jest to samo... Siedzę nad tym drugi dzień.
Go to the top of the page
+Quote Post
CuteOne
post 6.11.2012, 08:58:35
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Usuń [0] z $row[0]['Password'] i pozostałych $row
Go to the top of the page
+Quote Post
kona79
post 6.11.2012, 13:41:30
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.11.2012

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


niestety dalej po zalogowaniu na admina jestem przekierowany do index.php?Message=Zostałeś zalogowany!.
Go to the top of the page
+Quote Post
nospor
post 6.11.2012, 13:45:12
Post #8





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




1) włącz wyświetlanei wszystkich błędów. tu masz napisane jak:
Temat: Jak poprawnie zada pytanie

2) nie $row['login'] a $row['Login']

3) Usuń te 0 z $row jak ci pisano jesli tego jeszcze nie zrobiles

4) Jeśli nadal nie działa, to pokaz kod po poprawkach. Zanim jednak to zrobisz pamiętaj o punkcie nr 1


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

"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
kona79
post 6.11.2012, 14:28:16
Post #9





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 6.11.2012

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


Cytat
2) nie $row['login'] a $row['Login']

tu właśnie był problem, serdecznie wam dziękuję za pomoc
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: 25.04.2025 - 23:37