Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP]Admin i użytkownik przy logowaniu

Napisany przez: ReCiak 17.05.2019, 13:34:10

Witam,mam problem mianowicie posiadam takie coś do logowania na stronę:

  1. if($_SESSION['zalogowany'] !== TRUE){
  2. include 'wyglad/index.html';
  3. odbierz_logowanie();
  4. }elseif($_SESSION['zalogowany'] === TRUE){
  5. http://www.php.net/echo 'Zostałeś poprawnie zalogowany.';
  6. }else{
  7. http://www.php.net/header('Location: /');
  8. }

a chciałbym żeby jedno konto np. admin było logowane z innego pliku jako administrator. Podpowie ktoś jak to zrobić? Jestem totalnie zielony w php mam projekt szkolny do zrobienia muszę to zrobić biggrin.gif Z Góry dziękuje

Napisany przez: miccom 18.05.2019, 10:55:06

Nie rozumiem pytanie, co to znaczy z innego pliku?

W jaki sposób masz przechowywane dane do logowania?

Napisany przez: ReCiak 18.05.2019, 11:31:57

Dane logowania są w bazie. Po zalogowaniu sesji przekierowuje na stronę main.php to by była strona dla użytkownika, a chce jeszcze strone dla admina żeby miał dodatkowe opcje w panelu czyli zeby np. ladowalo strone admin.php. Ja jestem zielony w php dlatego może też źle myśle to jak coś mnie poprawcie biggrin.gif

Napisany przez: viking 18.05.2019, 12:14:43

Dołóż jakaś flagę isAdmin i po niej sprawdzaj czy może mieć includowany plik.

Napisany przez: miccom 18.05.2019, 13:05:41

Po co ładować dwa pliki?
Ja bym dał warunek że jeśli admin to menu pokazać inne, przecież strona main i admin będzie miała ten sam wygląd?

Napisany przez: dublinka 18.05.2019, 13:35:32

Popcorn biore.. smile.gif

Napisany przez: miccom 18.05.2019, 13:43:42

Cytat(dublinka @ 18.05.2019, 14:35:32 ) *
Popcorn biore.. smile.gif

Ja jadłem popcorn jak Nospor tłumaczył Ci zasadę stronicowania smile.gif

Do tego niezła komedia smile.gif

Napisany przez: ReCiak 18.05.2019, 13:48:44

Ja Panowie nic nie rozumiem z tego co piszecie biggrin.gif To jest projekt szkolny zależy mi tylko na tym żeby działało biggrin.gif I jakby ktoś mógł pokazać na przykładzie jak to zrobić bo inaczej nic nie zrozumie biggrin.gif

Cytat(miccom @ 18.05.2019, 14:05:41 ) *
Po co ładować dwa pliki?
Ja bym dał warunek że jeśli admin to menu pokazać inne, przecież strona main i admin będzie miała ten sam wygląd?


Jeśli da rade tak zrobić żeby ladowało inne menu to jak najbardziej. Bo tak wyglad będzie taki sam.

Napisany przez: miccom 18.05.2019, 14:11:57

Do SESSION dałbym numerki, jeśli SESSION['rank'] ( zamiast ZALOGOWANY ) == false // pokazujemy formularz logowania
jeśli SESSION['rank'] == 1 // czyli gość po logowaniu, pokazujemy menu zwykłego usera
jeśli SESSION['rank'] == 2 // to znak że to jest admin, pokazujemy menu i funkcje dla admina

a w bazie danych dać rekord rank i tam ustawiać numerki smile.gif
Nawet sesji nie trzeba, tylko sprawdzić rank z bazy danych wink.gif

Napisany przez: ReCiak 18.05.2019, 14:22:08

Cytat(miccom @ 18.05.2019, 15:11:57 ) *
Do SESSION dałbym numerki, jeśli SESSION['rank'] ( zamiast ZALOGOWANY ) == false // pokazujemy formularz logowania
jeśli SESSION['rank'] == 1 // czyli gość po logowaniu, pokazujemy menu zwykłego usera
jeśli SESSION['rank'] == 2 // to znak że to jest admin, pokazujemy menu i funkcje dla admina

a w bazie danych dać rekord rank i tam ustawiać numerki smile.gif
Nawet sesji nie trzeba, tylko sprawdzić rank z bazy danych wink.gif


Tylko w jaki sposób będzie mi zmieniało to menu? Nie rozumiem jakbyś mógł napisać przykładowy kod z tego co wysłałem było by super bo tak to ciężko mi to zrozumieć.

Napisany przez: miccom 18.05.2019, 14:33:22

Aaa, czyli chcesz gotowca?

Tutaj na forum raczej wszyscy pomagają dociekliwym i tym, którzy chcą się nauczyć smile.gif

Napisałem ci co możesz zrobić smile.gif
Teraz trzeba to przerobić pod twój przykład, ale wysil głowę, skonstruuj pierwszy, wstępny kodzik, a My wszyscy będziemy go tutaj poprawiać aż zadziała smile.gif a ty wyniesiesz z tego naukę smile.gif

Napisany przez: emillo91 18.05.2019, 16:12:36

A sprawdzasz w jakiś sposób czy użytkownik wpisał poprawne hasło i login? Możesz przypisać id rangi do sesji i później zapytaniem mysql sprawdzić czy osoba odwiedzająca daną stronę jest administratorem czyli Select... Where id=...

Napisany przez: dublinka 19.05.2019, 11:46:23

Cytat(miccom @ 18.05.2019, 13:43:42 ) *
Ja jadłem popcorn jak Nospor tłumaczył Ci zasadę stronicowania smile.gif

Do tego niezła komedia smile.gif

Taaa ... Idz lepoiej dziecko poucz sie bo jutro klasówka biggrin.gif

Nie wiem jaka masz strukture w bazie więc podam Ci przykład logowania dla wielu userów z wyk. tablicy pomocniczej.
Zamiast tego musisz pobrac sobie dane z bazy. 2 pliki z czego drugi nazywa sie 'gdziestam.php'

  1. <?php
  2.  
  3. http://www.php.net/session_start();
  4.  
  5. $AllDetails = http://www.php.net/array (
  6.  
  7. 'janek' => http://www.php.net/array('login' => 'janek', 'pass' => 'haslojanka'),
  8. 'franek' => http://www.php.net/array('login' => 'tomek', 'pass' => 'haslotomka'),
  9. 'admin' => http://www.php.net/array('login' => 'admin', 'pass' => 'hasloadmina')
  10.  
  11. );
  12.  
  13.  
  14.  
  15.  
  16.  
  17. if(!function_exists('LogIn'))
  18. {
  19.  
  20. function LogIn($ArgObj1)
  21. {
  22.  
  23. $ArgObj1 = "<form method=\"POST\" action=" . $_SERVER['SCRIPT_NAME'] . "?step=1>";
  24. $ArgObj1 .= "login: <input type=\"text\" name=\"LoginName\">";
  25. $ArgObj1 .= "Hasło: <input type=\"password\" name=\"PasswordName\">";
  26. $ArgObj1 .= "<input type=\"submit\" value=\"Loguj sie\" name=\"input\">";
  27. $ArgObj1 .= "</form>";
  28.  
  29. return $ArgObj1;
  30.  
  31. }
  32.  
  33. }
  34.  
  35. if(!function_exists('ShowLogOutLinkAndDetails'))
  36. {
  37.  
  38. function ShowLogOutLinkAndDetails($sess)
  39. {
  40.  
  41. return ($sess == 1) ? $sess . "<a href=" . $_SERVER['SCRIPT_NAME']. "?step=2>Wyloguj</a>" : $sess . "<a href=" . $_SERVER['SCRIPT_NAME']. "?step=2>Wyloguj</a>";
  42.  
  43. }
  44.  
  45. }
  46.  
  47.  
  48.  
  49. @$step = $_GET['step'];
  50.  
  51. (!http://www.php.net/isset($step)) ? $step = 0 : $step = $step;
  52.  
  53. switch($step):
  54.  
  55. case('0'):
  56.  
  57. if(http://www.php.net/isset($_SESSION['user']['login']))
  58. {
  59.  
  60. http://www.php.net/print ShowLogOutLinkAndDetails($_SESSION['user']['login']);
  61.  
  62.  
  63. } else {
  64.  
  65. http://www.php.net/echo LogIn($ArgObj1 = true);
  66.  
  67. }
  68.  
  69. break;
  70.  
  71. case('1'):
  72.  
  73. $submit = $_POST['input'];
  74. $LoginName = $_POST['LoginName'];
  75. $PasswordName = $_POST['PasswordName'];
  76.  
  77. if(http://www.php.net/isset($_SESSION['user']['login']))
  78. {
  79.  
  80. http://www.php.net/print ShowLogOutLinkAndDetails($_SESSION['user']['login']);
  81.  
  82.  
  83. } else {
  84.  
  85.  
  86. if($submit)
  87. {
  88. if( (http://www.php.net/trim($LoginName) != '') || (http://www.php.net/trim($PasswordName) != '') )
  89. {
  90.  
  91. if(http://www.php.net/isset($AllDetails[$LoginName]['login']) && http://www.php.net/isset($AllDetails[$LoginName]['pass']))
  92. {
  93. if( ($AllDetails[$LoginName]['login'] == $LoginName ) && ($AllDetails[$LoginName]['pass'] == $PasswordName) )
  94. {
  95.  
  96. if ($_SERVER['REQUEST_METHOD'] === 'POST')
  97. {
  98.  
  99.  
  100. if(session_status() == PHP_SESSION_ACTIVE)
  101. {
  102.  
  103. http://www.php.net/session_regenerate_id();
  104.  
  105.  
  106. if($AllDetails[$LoginForm]['login'] == 'admin')
  107. {
  108.  
  109. $_SESSION['user']['login'] = $AllDetails[$LoginName]['login'];
  110.  
  111. http://www.php.net/session_regenerate_id();
  112.  
  113. http://www.php.net/header('location: gdziestam.php');
  114.  
  115. } else
  116. {
  117.  
  118. $_SESSION['user']['login'] = $AllDetails[$LoginName]['login'];
  119.  
  120. http://www.php.net/session_regenerate_id();
  121.  
  122. http://www.php.net/header('location: gdziestam.php');
  123.  
  124. }
  125.  
  126.  
  127.  
  128. } else {
  129.  
  130. http://www.php.net/header('location:' . $_SERVER['SCRIPT_NAME']);
  131.  
  132. }
  133.  
  134.  
  135. }
  136.  
  137.  
  138. } else {
  139.  
  140. http://www.php.net/exit("Dane są nieprawidłowe <a href=". $_SERVER['SCRIPT_NAME'] .">WSTECZ</a>");
  141. }
  142. } else {
  143. http://www.php.net/header('location:' . $_SERVER['SCRIPT_NAME']);
  144. }
  145. }else {
  146.  
  147. http://www.php.net/exit('Prosze wypelnic pola');
  148.  
  149. }
  150. } else {
  151.  
  152. http://www.php.net/exit("błąd");
  153.  
  154. }
  155. }
  156.  
  157. break;
  158.  
  159. case('2'):
  160.  
  161. http://www.php.net/unset($_SESSION['user']['login']);
  162.  
  163.  
  164. $_SESSION = http://www.php.net/array();
  165.  
  166. if (http://www.php.net/ini_get("session.use_cookies"))
  167. {
  168. $params = http://www.php.net/session_get_cookie_params();
  169. http://www.php.net/setcookie(http://www.php.net/session_name(), '', http://www.php.net/time() - 3600,
  170. $params["path"], $params["domain"],
  171. $params["secure"], $params["httponly"]);
  172. }
  173. http://www.php.net/session_destroy();
  174.  
  175. http://www.php.net/header('location:' . $_SERVER['SCRIPT_NAME']);
  176. http://www.php.net/exit;
  177.  
  178. break;
  179.  
  180. default:
  181. http://www.php.net/header('location:' . $_SERVER['SCRIPT_NAME']);
  182. http://www.php.net/exit;
  183.  
  184.  
  185. endswitch;
  186.  
  187. ?>


gdziestam.php

  1. <?php
  2.  
  3. http://www.php.net/session_start();
  4.  
  5. if($_SESSION['user']['login'] == 'user')
  6. {
  7. http://www.php.net/print 'zawartosc strony dla uzytkownika';
  8. http://www.php.net/print " <a href=index.php?step=2>Wyloguj</a>";
  9. }
  10. if($_SESSION['user']['login'] == 'admin')
  11. {
  12. http://www.php.net/print 'zawartosc strony dla admina';
  13. http://www.php.net/print " <a href=index.php?step=2>Wyloguj</a>";
  14. }
  15.  
  16. ?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)