Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]problem z logowaniem różnch userów
agata
post 4.12.2009, 14:48:08
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 4.12.2009

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


Dzień dobry.

Mam problem z logowaniem użytkowników z różnymi rolami.

Napisałam coś takiego, gdy już user zostanie znaleziony w bazie to zależnie od roli jaką posiada powinien zostać przekierowany do swojego panelu i powinna zostać utworzona dla niego sesja. Nie wiem gdzie mam błąd i dlaczego tak a nie inaczej. Proszę o pomoc i wyjaśnienie jak powinnam to zrobić.

EDIT1:
Problem polega na tym że użytkownik nie zostaje przekierowany. User zostaje ponownie przekierowany do formularza gdzie dostaje komunikat o błędnych danych logowania


  1. <?php
  2. require_once('db_connect.php');
  3.  
  4.  
  5.  
  6. function login($login, $haslo)
  7. {
  8. $db_connect = new Db_connect();
  9.  
  10. $haslo=sha1($haslo);
  11. $zapytanie = "SELECT Login, Haslo FROM Users WHERE Login ='$login' and Haslo ='$haslo'";
  12. $wynik = mysql_query($zapytanie) or die (mysql_error('Nie można wykonać zapytania'));
  13.  
  14.  
  15.  
  16. $ile = mysql_num_rows();
  17.  
  18. if ( $ile > 0 )
  19. {
  20. $query = mysql_query ("Select Rola From Users Where Rola='$rola'") or die (mysql_error('nie mogę wyciągnąć roli użytkownika'));
  21. if ($rola == 'administrator')
  22. {
  23. header ('Location: admin/admin_control_panel.php');
  24. $_SESSION['rola'] = $rola;
  25. }
  26. else
  27. if ($rola == 'kierownik')
  28. {
  29. header ('Location: boss/boss_control_panel.php');
  30. $_SESSION['rola'] = $rola;
  31. }
  32. else
  33. if ($rola == 'pracownik')
  34. {
  35. header ('Location: workman/workman_control_panel.php');
  36. $_SESSION['rola'] = $rola;
  37. }
  38.  
  39. else
  40. {sleep(3);
  41. $blad="Podano błędne dane logowania";
  42. // kombinacja: identyfikator i hasło dostępu jest nieprawidłowa
  43. header('Location: index.php?blad=1');
  44. }
  45. }
  46. }
  47. ?>


Tutaj połączenie z bazą
  1. <?php
  2.  
  3. class Db_connect
  4. {
  5.  
  6. function __construct()
  7. {
  8. $host = 'localhost';
  9. $user = 'root';
  10. $password = 'xxx';
  11. $db = 'Sklep';
  12.  
  13. $this->db = mysql_connect($host, $user, $password, $db) or die (mysql_error('Nie mogę nawiązać połaczenia'));
  14. mysql_select_db($db, $this->db) or die (mysql_error('Nie mogę połaczyć z bazą danych'));
  15. mysql_query("Set Names 'utf8'");
  16. mysql_query("Set collation_connection = utf8_polish_ci");
  17.  
  18. }
  19.  
  20. public function closing ()
  21. {
  22. $close =$this->db;
  23. mysql_close($close);
  24. }?>


user wypełnia zwykły formularz
  1. <form action="" method="post" accept-charset="utf-8">
  2. <tr><td>Login</td><td><input type="text" class="text" name="login" /></td></tr>
  3. <tr><td>Hasło</td><td><input type="password" class="text" name="haslo" /></td></tr>
  4. <tr><td><input type="submit" value="Zaloguj"/></td></tr>
  5. <tr><td></td><td><?php
  6. if(isset($_GET['blad']))
  7. {echo "<font color=red>Podano błędne dane !</font>";}
  8. ?>
  9. </td></tr>
  10.  
  11. </table></form>


Ten post edytował agata 4.12.2009, 15:22:22
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 05:21