Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Logowanie jako administrator
Forum PHP.pl > Forum > Przedszkole
kona79
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);            
        }

    }
}
b4rt3kk
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. }
kona79
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.
b4rt3kk
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. }
kona79
Dziękuje za szybką pomoc, nie wiem czemu ale dalej jest to samo... Siedzę nad tym drugi dzień.
CuteOne
Usuń [0] z $row[0]['Password'] i pozostałych $row
kona79
niestety dalej po zalogowaniu na admina jestem przekierowany do index.php?Message=Zostałeś zalogowany!.
nospor
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
kona79
Cytat
2) nie $row['login'] a $row['Login']

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