Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] logowanie+sesje
Forum PHP.pl > Forum > PHP
tEREk
Witam,

Mam jeden problem ... mianowicie.

mam dwie grupy użytkowników np. użytkownik zaawansowany i użytkownik zwykły

login, haslo i rodzaj użytkownika przechowuje w bazie MySQL

skrypt logujący po podaniu loginu i hasła sprawdza w bazie czy istnieje taki użytkownik, jeśli tak to sprawdza czy to jest użytkownik zaawansowany, jeśli tak to wyświetla mu stronę secret.php, jeśli nie to wyświetla secret_2.php.


problem polega na tym ze jak zaloguje sie jako zwykły użytkownik na komputerze i zmienie nazwe ścieżki w okienku z np. http://host.pl/secret_2.php? na http://host.pl/secret.php? to bedę miał wyświetloną stronę zaawansowanego użytkownika.

Jak to rozwiązać questionmark.gif

Pozdrawiam
tEREk

logowanie.php
  1. <?php 
  2.  
  3. //podłączenie dodatkowych plików
  4. require "connection.php";
  5.  
  6. //odebranie wartość z formularza i podstawienie pod zmienne
  7. $login = $_POST['login'];
  8. $pass = $_POST['pass'];
  9.  
  10. //sprawdzenie czy zostały podane obydwie zmienne (login i hasło)
  11. if((!$login) | (!$pass)) {
  12. //print ("Błąd, nie podałeś wystarzającej ilości danych, uzupełnij pola Login i Hasło");
  13. print ("nie podales loginu albo hasla");
  14. } 
  15.  
  16. //$pass = md5($pass);
  17. //wywołanie funkcji connection()
  18. connection();
  19. //skierowanie zapytania do bazy
  20. $sql = mysql_query("SELECT * FROM operator WHERE haslo='$pass' and login='$login'");
  21. $num = mysql_num_rows($sql);
  22.  
  23. if ($num == "1") {
  24.  
  25. //skierowanie zapytania do bazy
  26. $sql2 = mysql_query("SELECT * FROM operator WHERE haslo='$pass' and login='$login' and stanowisko='kierownik'");
  27. $num2 = mysql_num_rows ($sql2);
  28. if ($num2 == "1") {
  29. session_register("login");
  30. header("Location: secret.php?" . SID);
  31. }
  32.  
  33. if ($num2 == "0") {
  34. session_register("login2");
  35. header("Location: secret2.php?" . SID);
  36. }
  37. }
  38.  
  39. if ($num == "0"){
  40. //print ("Błąd logowania, zły login lub hasło");
  41. print ("zly login lub haslo");
  42. }
  43.  
  44. ?>


secret.php
  1. <?php
  2. if (!isset($_SESSION["login"])){
  3. header("Location: logowanie.php");
  4.  exit();
  5. }
  6. ?>
  7. <HTML>
  8. <HEAD>
  9. <TITLE>Tajne/poufne</TITLE>
  10. </HEAD>
  11. <BODY>
  12. <?php
  13. echo 'Witaj '.$_SESSION["login"].'<a href="logout.php?'.SID.'">[Wyloguj]</a>';
  14. ?>
  15. <BR><B>Ściśle tajne dane.</B>
  16. </BODY>
  17. </HTML>


secret2.php
  1. <?php
  2. if (!isset($_SESSION["login2"])){
  3. header("Location: logowanie.php");
  4.  exit();
  5. }
  6. ?>
  7. <HTML>
  8. <HEAD>
  9. <TITLE>Tajne/poufne </TITLE>
  10. </HEAD>
  11. <BODY>
  12. <?php
  13. echo 'Witaj '.$_SESSION["login"].'<a href="logout.php?'.SID.'">[Wyloguj]</a>';
  14. ?>
  15. <BR><B>Ściśle tajne dane. 222222222222222222222222222</B>
  16. </BODY>
  17. </HTML>
Crop
W sesji przechowaj typ usera i teraz ifem zrób coś takiego:
  1. <?php
  2. if ($_SESSION['type'] == 'adv') (
  3. //Zawartość Strony
  4. }
  5. else {
  6. echo ' Nie posiadasz uprawnień do oglądania tej strony!<br /><a href="loguj.php">Przejdz do strony logowania</a>';
  7. }
  8. ?>

I tak samo w przypadku drugiego pliku tylko oczywiście inna wartośc zmiennej sesyjnej type
tEREk
jestem bardzo początkujący więc wybacz, że oczekuje łopatologicznej odpowiedzi smile.gif

to co podałeś mam dopisać do plików secret.php i secret2.php questionmark.gif
Crop
Na chłopski rozum:
1. Skrypt logowania sprawdza czy dane są poprawne i pobiera z tabeli typ użytkownika np. z pola type. Ok:)
2. Skrypt ustawia zmienną sesyjną (normal - zwykly, adv - zaawansowany).
  1. <?php
  2. $_SESSION['type'] = $mysql[type];
  3. ?>

3. Strona sprawdza czy user ma do niej dostęp:
Strona dla zaawansowanego:
  1. <?php
  2. if ($_SESSION['type'] == 'adv') (
  3. //Zawartość Strony dla usera zaawansowanego
  4. }
  5. else {
  6. echo ' Nie posiadasz uprawnień do oglądania tej strony!<br /><a href="loguj.php">Przejdz do strony logowania</a>';
  7. }
  8. ?>

Strona dla normalnego (zakładam że zaawansowany ma do niej dostęp):
  1. <?php
  2. if (isset($_SESSION['type'])) (
  3. //Zawartość Strony normalnego usera
  4. }
  5. else {
  6. echo ' Nie posiadasz uprawnień do oglądania tej strony!<br /><a href="loguj.php">Przejdz do strony logowania</a>';
  7. }
  8. ?>

lub jeśli niema dostępu:
  1. <?php
  2. if ($_SESSION['type'] == 'normal') (
  3. //Zawartość Strony normalnego usera
  4. }
  5. else {
  6. echo ' Nie posiadasz uprawnień do oglądania tej strony!<br /><a href="loguj.php">Przejdz do strony logowania</a>';
  7. }
  8. ?>

Napisz czy dziala
tEREk
Dzięki sprawdzę to jutro i dam znać co i jak smile.gif

Pozdrawiam
tEREk
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.