Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Administrator i zwykły user
Forum PHP.pl > Forum > Przedszkole
xmen491
index.php

  1. <?php
  2. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  3.  
  4. // start sesji
  5.  
  6. // nagłówek
  7.  
  8.  
  9. // je_li user jest zalogowany
  10. if($_SESSION['logged'])
  11. {
  12. // wy_wietlamy userowi jego dane
  13. echo 'Witaj '.$_SESSION['nick'].'!<br />';
  14. echo 'Twój ID to: '.$_SESSION['id'].'.<br />';
  15. echo 'Zarejestrowałes się u nas: '.date("d.m.Y, H:i", $_SESSION['data_rejestracji']).'<br />';
  16. echo '<a href="logout.php">WYLOGUJ</a>';
  17. }
  18. // je_li nie jest zalogowany
  19. else
  20. {
  21. echo 'Witaj!<br />';
  22. echo '<a href="login.php">Zaloguj się</a> lub <a href="register.php">zarejestruj nowe konto</a>';
  23. }
  24.  
  25. // koniec buforowania
  26. ?>




register.php
  1. <?php
  2.  
  3. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  4.  
  5. // start sesji
  6.  
  7. // połączenie z mysql
  8. mysql_connect('localhost', 'root', '')
  9. or die('Nieudane polaczenie z baza danych...');
  10.  
  11. // wybór bazy danych
  12. or die('Nie udalo sie wybrac bazy danych...');
  13.  
  14. // nagłówek
  15.  
  16.  
  17. // tworzymy prosty formularz
  18. echo '<form action="register.php" method="POST">
  19. Nick: <br />
  20. <input type="text" name="nick"><br />
  21. Hasło: <br />
  22. <input type="password" name="pass"><br />
  23. <input type="submit" name="ok" value="Rejestruj">
  24. </form>';
  25.  
  26. // jeśli zostanie naciśnięty przycisk "Rejestruj"
  27. if(isset($_POST['ok']))
  28. {
  29. $nick = $_POST['nick'];
  30. $pass = $_POST['pass'];
  31.  
  32. // sprawdzamy czy wszystkie dane zostały podane
  33. if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
  34. // jeśli tak...
  35. else
  36. {
  37. // filtrujemy dane
  38.  
  39. // sprawdzamy czy jest już użytkownik o takim loginie
  40. $result = mysql_query("SELECT * FROM users WHERE nick='$nick'");
  41.  
  42. // jeśli już istnieje
  43. if(mysql_num_rows($result)!=0) echo 'Już istnieje konto z takim loginem!';
  44. // jeśli nie...
  45. else
  46. {
  47. // pobieramy aktualną datę
  48. $data = time();
  49.  
  50. // kodujemy hasło
  51. $pass = md5($pass);
  52.  
  53. // tworzymy zapytanie
  54. $query = "INSERT INTO `users` (`nick` , `pass`, `data_rejestracji`) VALUES ('$nick', '$pass', '$data')";
  55.  
  56. // jeśli zapytanie wykona się poprawnie to zostanie wyświetlony stosowny komunikat
  57. if(mysql_query($query)) echo 'Zostałes poprawnie zarejestrowany! </br> Możesz się teraz <a href="login.php">zalogować</a>';
  58. }
  59. }
  60. }
  61.  
  62. // rozłączenie z bazą danych
  63.  
  64. // koniec buforowania
  65. ?>


logout.php


  1. <?php
  2.  
  3. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  4.  
  5. // start sesji
  6.  
  7. // nagłówek
  8.  
  9.  
  10. // jeśli user jest zalogowany
  11. if($_SESSION['logged'])
  12. {
  13. // to go wylogowujemy i usuwamy jego dane z sesji
  14. $_SESSION['logged'] = false;
  15. $_SESSION['nick'] = '';
  16. $_SESSION['id'] = '';
  17. echo 'Zostałeś poprawnie wylogowany! </br> <a href="index.php">wróć</a>';
  18. }
  19. // jeśli nie jest zalogowany
  20. else
  21. {
  22. echo 'Nie byłes zalogowany! <a href="index.php">wróć</a>';
  23. }
  24.  
  25. // koniec buforowania
  26. ?>




login.php


  1. <?php
  2.  
  3. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  4.  
  5.  
  6. // start sesji
  7.  
  8. // połączenie z mysql
  9. mysql_connect('localhost', 'root', '')
  10. or die('Nieudane polaczenie z baza danych...');
  11.  
  12. // wybór bazy danych
  13. or die('Nie udalo sie wybrac bazy danych...');
  14.  
  15. // nagłówek
  16.  
  17.  
  18. // sprawdzamy czy user jest już zalogowany
  19. if($_SESSION['logged']) echo 'Już jestes zalogowany! </br><a href="index.php">Strona Główna</a>';
  20. else
  21. {
  22. // tworzymy prosty formularz
  23. echo '<form action="login.php" method="POST">
  24. Nick: <br />
  25. <input type="text" name="nick"><br />
  26. Hasło: <br />
  27. <input type="password" name="pass"><br />
  28. <input type="submit" name="ok" value="Zaloguj">
  29. </form>';
  30.  
  31. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  32. if(isset($_POST['ok']))
  33. {
  34. $nick = $_POST['nick'];
  35. $pass = $_POST['pass'];
  36.  
  37. // sprawdzamy czy wszystkie dane zostały podane
  38. if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
  39. // jeśli tak...
  40. else
  41. {
  42. // filtrujemy dane
  43.  
  44. // kodujemy hasło
  45. $pass = md5($pass);
  46.  
  47. // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
  48. $result = mysql_query("SELECT * FROM users WHERE nick='$nick' AND pass='$pass'");
  49.  
  50. // jeśli nie istnieje
  51. if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!';
  52. // jeśli tak...
  53. else
  54. {
  55. // dodajemy wynik zapytania do tablicy
  56. $row = mysql_fetch_array($result);
  57.  
  58. // ustawianie sesji że użytkownik jest zalogowany
  59. $_SESSION['logged'] = true;
  60.  
  61. // dodawanie do sesji id użytkownika, login oraz datę rejestracji
  62. $_SESSION['id'] = $row['id'];
  63. $_SESSION['nick'] = $row['nick'];
  64. $_SESSION['data_rejestracji'] = $row['data_rejestracji'];
  65.  
  66. // wyświetlenie komunikatu oznaczającego poprawne logowanie
  67. echo 'Zostałes poprawnie zalogowany! </br> Możesz teraz przejsć na <a href="index.php">stronę główna</a>';
  68. }
  69. }
  70. }
  71. }
  72.  
  73. // rozłączenie z bazą danych
  74.  
  75. // koniec buforowania
  76. ?>



rejestracja.sql

  1. CREATE TABLE `test`.`users` (
  2. `id` INT NOT NULL AUTO_INCREMENT ,
  3. `nick` VARCHAR( 100 ) NOT NULL ,
  4. `pass` VARCHAR( 60 ) NOT NULL ,
  5. `data_rejestracji` INT NOT NULL ,
  6. PRIMARY KEY ( `id` )
  7. ) ENGINE = MYISAM











Jest skrypt którego używam do logowania, chce zrobić stronę "admin.php" i abym mógł zalogować się na nią tylko wtedy kiedy podam login i hasło administratora, niech to będzie np: Login: administrator1 ,Hasło : wybrany. To konto administratora ma miec również możliwość logowania się na podstrony te na które dostęp mają zwykli użytkownicy.

Co mam dokładnie zmienić w tym kodzie ? prosze o dokładne wskazanie
PanGuzol
Dodać do tabeli users pole rank określające rangę użytkownika.
gigzorr
Tak jak kolega wyżej , wystarczy dodać nowe pole w tabeli i przypisać podstawowa wartość 0 (zwykły user), a jak będziesz chciał zrobić usera adminem to zmienisz na np. 1.
select+if
@rtur
jak już dodasz do tabeli to pole rank to dodaj jeszcze w pliku login.php po tym:
  1. $_SESSION['nick'] = $row['nick'];
  2. $_SESSION['data_rejestracji'] = $row['data_rejestracji'];

kod:
  1. $_SESSION['rank'] = $row['rank'];


załóżmy że rank o wartości '9' = Administrator
wszędzie tam gdzie chcesz coś widzieć tylko ty (Administrator) dajesz
  1. if($_SESSION['rank']=='9'){echo 'treść widzi tylko administrator';}


acha i jeszcze w logout.php po tym:
  1. if($_SESSION['logged'])
  2. {
  3. // to go wylogowujemy i usuwamy jego dane z sesji
  4. $_SESSION['logged'] = false;
  5. $_SESSION['nick'] = '';
  6. $_SESSION['id'] = '';

dodaj kod:
  1. $_SESSION['rank'] = '';

xmen491
przepraszam, że zadaje takie pytanie ale jak dodać te pole rank w tym pliku rejestracja.sql ?
@rtur
  1. CREATE TABLE `test`.`users` (
  2. `id` INT NOT NULL AUTO_INCREMENT ,
  3. `nick` VARCHAR( 100 ) NOT NULL ,
  4. `pass` VARCHAR( 60 ) NOT NULL ,
  5. `data_rejestracji` INT NOT NULL ,
  6. `rank` INT NOT NULL ,
  7. PRIMARY KEY ( `id` )
  8. ) ENGINE = MYISAM
xmen491
Okej, teraz kolejne pytanie poprawiam ten kod tak jak powiedział @rtur i rejestruję sobie nowego użytkownika wpisuję login: administrator o hasło : praktyka i jak już pomyślnie go zarejestruję to jak zmienić temu użytkownikowi ten rank na 9 ?
gigzorr
w phpmyadminie wklejasz :
  1. UPDATE nazwa_tabeli SET rank=9 WHERE nick=login_tego_usera_co_ma_dostac_adma


tylko zmieniasz nazwe tabeli na swoją i login adma co ma dostać rank 9.

Albo poprostu wbijasz na http://127.0.0.1/phpmyadmin , przechodzisz do swojej bazy,wybierasz tabele i tam zmieniasz ręcznie smile.gif
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.