Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Administrator i zwykły user
xmen491
post 5.06.2011, 13:49:18
Post #1





Grupa: Zarejestrowani
Postów: 77
Pomógł: 1
Dołączył: 30.05.2011

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
PanGuzol
post 5.06.2011, 15:58:44
Post #2





Grupa: Zarejestrowani
Postów: 353
Pomógł: 50
Dołączył: 28.07.2005
Skąd: Łaziska Górne

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


Dodać do tabeli users pole rank określające rangę użytkownika.


--------------------
Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej"
"NIE kradnij, rząd nielubi konkurencji"
Go to the top of the page
+Quote Post
gigzorr
post 5.06.2011, 16:12:25
Post #3





Grupa: Zarejestrowani
Postów: 652
Pomógł: 47
Dołączył: 6.02.2010
Skąd: Radom

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


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

Ten post edytował gigzorr 5.06.2011, 16:14:22
Go to the top of the page
+Quote Post
@rtur
post 5.06.2011, 16:19:39
Post #4





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


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'] = '';



Ten post edytował @rtur 5.06.2011, 16:34:50


--------------------
Artur
Go to the top of the page
+Quote Post
xmen491
post 5.06.2011, 16:24:34
Post #5





Grupa: Zarejestrowani
Postów: 77
Pomógł: 1
Dołączył: 30.05.2011

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


przepraszam, że zadaje takie pytanie ale jak dodać te pole rank w tym pliku rejestracja.sql ?
Go to the top of the page
+Quote Post
@rtur
post 5.06.2011, 16:27:00
Post #6





Grupa: Zarejestrowani
Postów: 254
Pomógł: 3
Dołączył: 23.02.2006

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


  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


--------------------
Artur
Go to the top of the page
+Quote Post
xmen491
post 5.06.2011, 16:30:07
Post #7





Grupa: Zarejestrowani
Postów: 77
Pomógł: 1
Dołączył: 30.05.2011

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


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 ?
Go to the top of the page
+Quote Post
gigzorr
post 5.06.2011, 16:34:35
Post #8





Grupa: Zarejestrowani
Postów: 652
Pomógł: 47
Dołączył: 6.02.2010
Skąd: Radom

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


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

Ten post edytował gigzorr 5.06.2011, 16:37:56
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: 29.06.2025 - 20:00