Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] logowanie kilku grup, każda grupa inne opcje
em-ba
post 8.03.2008, 21:08:55
Post #1





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

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


Witam, chciałem wykonać logowanie, które w zależności od tego kto się loguje to będzie łączony z dopowiednią stroną.
Czy ma Ktoś pomysł jak to można wykonać?

Myślałem nad czyms takim, zeby podzielić grupy osób na tabele i w zależności od tego z jakiej kto będzie "pochodził" tabeli to zostanie mu przedstawiona właściwa strona.

Mam nadzieje, że napisałem w miare przejzyscie smile.gif

do tej pory korzystam z takiego logowania..
  1. <?php
  2. mysql_connect ('localhost', 'root', 'krasnal') or die ("nie udało sie połączyć");
  3. mysql_select_db('fi_kur') or die ("Nie mozna zlokalizowac bazy danych");
  4.  
  5.  
  6.  if($_SESSION['zalogowany'] == 0)
  7.  {
  8. echo '<form id="LOGOWANIE" method="post" action="index.php" enctype="multipart/form-data"> <h2>Zaloguj się:</h2>
  9. <div>
  10. Login:<br />
  11. <input id ="login" type="text" name="login" maxlength="15"/><br /><br />
  12. Hasło:<br />
  13. <input id ="haslo" type="password" name="haslo" maxlength="10"/><br /><br />
  14. <input id ="zaloguj" type="submit" name="zaloguj" value="Zaloguj"/>
  15. <a href="form_rej.php"><input id ="zarejestruj" type="submit" name="zarejestruj" value="Zarejestruj"/></a>
  16. </div>
  17. </form>'; 
  18.  
  19. if (isset($_POST['login']) && isset($_POST['haslo']))
  20. {
  21.  $login = $_POST['login'];
  22.  $haslo = $_POST['haslo'];
  23.  $haslo= md5($haslo);
  24.  
  25.  $sql = "SELECT id FROM uzytkownicy WHERE login='".$login."' and haslo='".$haslo."'";
  26.  $result = mysql_query($sql) or die ('BLAD ->'. mysql_error() . '<br />'. $sql);
  27.  
  28.  if(mysql_num_rows($result) == 1) {
  29.  echo "zostałeś zalogowany jako: $login";
  30.  $_SESSION['login'] = $login;
  31.  $_SESSION['zalogowany'] = 1;
  32.  $_SESSION['czas'] = time();
  33.  header ('location: strona1.php');
  34.  }else {
  35.  echo '<div style="margin-left: 300px;"><br />
  36.  <span style="color: red; font-weight: bold;">Wpisz prawidłowy login i hasło</span></div>';
  37. }
  38. }
  39.  }
  40.  else {
  41. echo "Zostałeś zalogowany jako ".$_SESSION['login']."<br /><a href='index.php?log=wyloguj'>wyloguj</a>";
  42. $intTimeoutSeconds = 600;
  43.  
  44. if(isset($_SESSION['intLastRefreshTime']))
  45. {
  46. if(($_SESSION['intLastRefreshTime']+$intTimeoutSeconds)<time())
  47. {
  48.  header('location: index.php');
  49. }
  50. }
  51. $_SESSION['intLastRefreshTime'] = time();
  52.  }
  53.  
  54.  if ($_GET['log'] == "wyloguj") {
  55. header('location: index.php');
  56.  }
  57.  
  58. ?>


Ten post edytował em-ba 8.03.2008, 21:10:52
Go to the top of the page
+Quote Post
PawelC
post 8.03.2008, 21:11:54
Post #2





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Możesz to zrobić tak:
tabela users a w niej login, haslo, ranga. Wtedy podczas logowania skrypt sprawdzi jaką ma range, i na jej podstawie wyświetli to co dana ranga może zobaczyć.
Go to the top of the page
+Quote Post
em-ba
post 8.03.2008, 21:13:23
Post #3





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

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


aha, ale to użytkownik obok loginu i hasła musiałby podawać jeszcze range?
Go to the top of the page
+Quote Post
PawelC
post 8.03.2008, 21:15:29
Post #4





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Nie-e, ranga zostanie domyślnie dodana jako np zwykly user i zmienić mu rangę możesz ty za pomoca panela.
Go to the top of the page
+Quote Post
em-ba
post 8.03.2008, 21:19:22
Post #5





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

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


ok, rozumiem....
ale to ogołem ma być docelowo tak, ze ja nie bede zmieniał tej rangi tylko beda dodawani użytkownicy z róznych miejsc serwisu..

jedni to poprostu userzy, a kolejni beda dodawani juz bezpośrednio ze storny jako pracownicy //a jest ten sam panel logowania
Go to the top of the page
+Quote Post
PawelC
post 8.03.2008, 21:23:21
Post #6





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


możesz to rozwiązać np tak
  1. <?php
  2. ?>
  3. <?php
  4. mysql_connect(localhost,root,krasnal); // Łączenie z bazą danych
  5. mysql_select_db(krasnal);// wybranie bazy danych
  6.  
  7.  
  8.  
  9. $login = trim($_POST['login']);
  10. $haslo = trim($_POST['haslo']);
  11. $ranga=trim($_POST['ranga']);
  12. $loguj="select login,haslo,ranga from users where login='$login' and haslo='$haslo'"; 
  13. $rekordy = mysql_query($loguj);
  14. if(mysql_num_rows($rekordy)==0)// sprawdzenie czy dany użytkownik istnieje w bazie
  15. {
  16.  echo' Podany login i haslo jest błędne'; // jeżeli nie istnieje taki użytkownik to wyświetla błąd
  17.  exit;
  18. }
  19. else
  20. {
  21. $_session['ranga']=$_POST['ranga'];
  22. if($_session['ranga']=='zwykly user'){
  23. print "Twoja ranga to zwykły user"; //to co powinien widzieć zwykłu user
  24. }
  25.  
  26. if($_session['ranga']=='admin'){
  27. print "twoja ranga to admin"; // to co powinien widzieć admin
  28. }
  29.  
  30. if($_session['ranga']=='vip'){
  31. print "Twoja ranga to vip"; //to co powinien widzieć vip
  32. }
  33. }
  34. ?>

To co napisałem to tylko przykład smile.gif

Ten post edytował ExPlOiT 8.03.2008, 21:24:04
Go to the top of the page
+Quote Post
em-ba
post 8.03.2008, 21:37:04
Post #7





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

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


ok, dzieki, tylko mam takie pytanko...
no uzytkownicy beda mieli ta range=zwykly user i załóżmy bedzie im to nadawane automatycznie... a pracownicy?

pole z wyborem rangi dać w formularzu rej. userów jako ukryty? a w formularzu pracowników jako vip ..czy jakoś tak?

nie wiem wlasnie czy nie powinienem zrobić oddzielnej tabeli dla jednych i drugich w bazie danych... czy to nie ma znaczenia..
Go to the top of the page
+Quote Post
PawelC
post 8.03.2008, 21:39:53
Post #8





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


w formularzu daj pole
  1. <input type="hidden" name="ranga" value="zwykly user">

A reszcie będziesz musiał sam dać rangę wyższą jak zwykły user poprzez panel, innego wyjścia niewidzę, tak będzie najbezpieczniej. Niema sensu robić odzielnej tabeli.
Go to the top of the page
+Quote Post
em-ba
post 8.03.2008, 21:46:20
Post #9





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

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


ok, dzieki - spróbuję coś takiego wykonać biggrin.gif

myslalem tylko o 2 tabelach, bo wtedy bym sobie przechowywał inne dane dla userów w jednej tabeli i inne pracowników..

ale i tak dzieki za pomoc smile.gif
Go to the top of the page
+Quote Post
PawelC
post 8.03.2008, 21:53:00
Post #10





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Możesz zrobić tak:
Tabela users:
login,haslo i ranga

Tabela teksty:
a w niej dodatkowo kolumne ranga i wtedy będziesz przy zapytaniu do bazy dodawał warunek where ranga='tutaj ranga' i zostanie pobrany tekst dla danej rangi np
  1. <?php
  2. select * from teksty where ranga='tutaj ranga'
  3. ?>
Go to the top of the page
+Quote Post
em-ba
post 8.03.2008, 22:05:53
Post #11





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

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


aha, a w tabeli "teksty" co miałoby się znaleźć oprócz tej rangi?

..nazwy podstron, które potem się zainculdują, czy jak...?
Go to the top of the page
+Quote Post
PawelC
post 8.03.2008, 22:09:15
Post #12





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Może być nazwa pliku który includujesz, ale lepiej dać tam teksty. Np tytul, tresc,autor etc...
i np dla zwykłych userów zrobisz tak
tytul tresc autor ranga
jakis tytul jakas tresc zosia zwykly_user
A dla pracownika tak samo tyle że w ranga np pracownik. To już twoja wola co będziesz chciał trzymać w tej bazie, dla pracowników np jakieś informacje etc...
Go to the top of the page
+Quote Post
em-ba
post 8.03.2008, 22:14:22
Post #13





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

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


no dobraa, dzieki, pokombinuje coś z tym
Go to the top of the page
+Quote Post
PawelC
post 8.03.2008, 22:18:19
Post #14





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


To jest proste, jak już masz bazę danych zaprojektowaną to reszte masz z górki. W razie problemów daj mi znać np na gg albo PW
Go to the top of the page
+Quote Post
em-ba
post 8.03.2008, 22:27:02
Post #15





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

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


ok smile.gif
ja baze to mam itd wszystko działa tylko teraz chciałem wlasnie rozdzielić co się komu ma wyswietlac..
Go to the top of the page
+Quote Post
PawelC
post 8.03.2008, 22:28:43
Post #16





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Pracownikom np jakieś dane techniczne wszystko związane ze stroną techniczną serwisu, których niemogą zobaczyć zwykły userzy, a zwykłym userom artykuły etc...
Go to the top of the page
+Quote Post
em-ba
post 8.03.2008, 22:34:08
Post #17





Grupa: Zarejestrowani
Postów: 202
Pomógł: 3
Dołączył: 6.01.2008
Skąd: Mazowieckie

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


no tak, wlasnie o to mi chodzi
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: 18.07.2025 - 08:39