Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Sesje problem
andrzej7322
post 8.05.2010, 12:54:06
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


Witam.
Jestem początkujący w php i nie wiem czy dobrze rozpoznaje problem jeżeli źle go rozpoznałem to proszę o wyrozumiałość.
Napisałem własnego CMS'a i dziś ulepszyłem go o dział administratorzy.
Stworzyłem system zarządzania administratorami. Utworzyłem kliku administratorów i określiłem ich role. Gdy jestem zalogowany jako główny administrator i dodaję nowego administratora to automatycznie zostaje na niego przelogowany.W ten sam sposób dzieje się gdy edytuje jednego z administratorów automatycznie podczas zapisu zmian zostaje przelogowany.
Z góry dziękuje za pomoc.

Ten post edytował andrzej7322 8.05.2010, 12:57:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
pedro84
post 8.05.2010, 13:00:41
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Gdzieś masz błąd w kodzie, ale bez tego trudno będzie powiedzieć cokolwiek.


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
andrzej7322
post 8.05.2010, 13:03:03
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


To jet kod index.php
  1. <?php
  2. include("php/conn.php");
  3. if (isset($_SESSION['user_id']) and isset($_SESSION['login']))
  4. {
  5. include ("index2.php");
  6. }
  7. else
  8. {
  9.  
  10. include ("login.php");
  11.  
  12. }
  13. ?>
Go to the top of the page
+Quote Post
pedro84
post 8.05.2010, 13:05:07
Post #4





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Ten kod to akurat dużo nie mówi. Przechowujesz w sesji rolę użytkownika?


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
gOdi_1991
post 8.05.2010, 13:06:30
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 5.05.2010

Ostrzeżenie: (30%)
XX---


po co ci 2 sessions start ?
Go to the top of the page
+Quote Post
andrzej7322
post 8.05.2010, 13:06:53
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


Nie role użytkownika przechowuję w bazie danych ale ograniczenia działają mi poprawnie.
Go to the top of the page
+Quote Post
pedro84
post 8.05.2010, 13:09:58
Post #7





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Cytat
Utworzyłem kliku administratorów i określiłem ich role

To powinieneś przechowywać w sesji moim zdaniem.

Cytat
Gdy jestem zalogowany jako główny administrator i dodaję nowego administratora to automatycznie zostaje na niego przelogowany.

O, ten fragment kodu pokaż, o niego mi chodziło wcześniej smile.gif


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
andrzej7322
post 8.05.2010, 13:39:00
Post #8





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 8.05.2010

Ostrzeżenie: (20%)
X----


To wygląda w tak jakby przy wprowadzeniu jakichkolwiek zmian w tabeli w bazie danych automatycznie przeładowywało mi sesje wczytują dane z edytowanego lub dodawanego rekordu.
  1. elseif(isset($_GET['admin']) && $_GET['admin']=='dodaj')
  2. {
  3. echo'<table class="roz">
  4. <tr>
  5. <td><p>Dodawanie administratora</p></td>
  6. </tr>
  7. </table>';
  8. echo '<form method="POST" action="index.php?admin=dopisz">
  9. <table class="roz"style="width:200px;height:auto;float:left;border:0px;">
  10. <tr><td class="a"><p>Nazwa użytkownika</p></td></tr>
  11. <tr><td class="a"><p>Hasło</p></td></tr>
  12. </table><table class="ror"style="float:left;width:400px;height:auto;margin-top:0px;">
  13.  
  14. <tr>
  15. <td width="100%"class="d">
  16. <input type="text"name="nazwa" style="width:95%;border:0px;color:#2870a8;margin-left:2px;"value=""></td>
  17. </tr>
  18. <tr><td width="100%"class="d">
  19. <input type="password"name="pass" style="width:70%;border:0px;color:#2870a8;margin-left:2px;"></td>
  20. </tr>
  21. </table>
  22. <table class="roz"style="border-bottom:solid 0px;margin-bottom:-5px;">
  23. <tr><td width="100%"class="a"><p>Ograniczenia</p></td></tr></table>
  24. <table class="ror"style="float:left;height:auto;margin-top:0px;">';
  25. if($wiersz['ograniczenia']==0){
  26. echo'<tr><td class="d"><p>Pełny dostęp <input type="radio" name="dostep" value="0" checked="checked"></p></td></tr>';
  27. }
  28. if($wiersz['ograniczenia']!=0){
  29. echo'<tr><td class="d"><p>Pełny dostęp <input type="radio" name="dostep" value="0"></p></td></tr>';
  30. }
  31. if($wiersz['ograniczenia']==1){
  32. echo'<tr><td class="d"><p>Administracja sklepu oraz strony <input type="radio" name="dostep" value="1" checked="checked"></p></td></tr>';
  33. }
  34. elseif($wiersz['ograniczenia']!=1){
  35. echo'<tr><td class="d"><p>Administracja sklepu oraz strony <input type="radio" name="dostep" value="1"></p></td></tr>';
  36. }
  37. if($wiersz['ograniczenia']==2){
  38. echo'<tr><td class="d"><p>Administracja sklepu <input type="radio" name="dostep" value="2" checked="checked"></p></td></tr>';
  39. }
  40. elseif($wiersz['ograniczenia']!=2){
  41. echo'<tr><td class="d"><p>Administracja sklepu <input type="radio" name="dostep" value="2"></p></td></tr>';
  42. }
  43. echo'</table>
  44. <input type="submit" class="edytuj"value="Zapisz"></input>
  45. <a href="index.php?admin"class="edytuj">Powrót</a>
  46. </form>';
  47. }
  48. elseif(isset($_GET['admin']) && $_GET['admin']=='dopisz')
  49. {
  50. $pass=$_POST['pass'];
  51. $haslo=sha1(md5($pass));
  52. $login=$_POST['nazwa'];
  53. $ograniczenia=$_POST['dostep'];
  54.  
  55. mysql_query("INSERT INTO user VALUES(0,'$login','$haslo','$ograniczenia')");
  56. echo'<table class="roza">
  57. <tr>
  58. <td class="i"><p>Administratorzy</p></td>
  59. </tr></table>';
  60. echo '<div class="wyn">Pomyślnie dodałem Administratora !</div>';
  61. echo('<html>
  62. <meta http-equiv="refresh" content="1; URL=index.php?admin">
  63. </html>');
  64. }


Cytat(gOdi_1991 @ 8.05.2010, 14:06:30 ) *
po co ci 2 sessions start ?

To chyba nie robi jakiegoś problemu. Ten drugi session_start znalazł się tam ponieważ modyfikowałem wielokrotnie ten kod próbowałem różnych opcji i to jest taka pozostałość.
Go to the top of the page
+Quote Post
CyberDuck_
post 8.05.2010, 14:06:04
Post #9





Grupa: Zarejestrowani
Postów: 135
Pomógł: 15
Dołączył: 17.08.2009

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


Masz duza niekonsekwencje w zmiennych.
Nie rob dwa razy session_start bo to nic nie daje. Chyba, ze ja gdzies
wczesniej zamykasz. Staraj sie utrzymac w jednej zmiennej nazwe
uzytkownika zalogowanego, w innej np uprawnienia.
Ja to zrobilem jeszcze tak, ze w jednej zmiennej wprowadzam uprawnienia
w stylu 0100101001011111 i odpowiednie warunki pozwalaja w odpowiednich
miejscach na rozne akcje. :
  1. if (substr($zmienna,$pozycja,1) == '1') {

Np mimo, ze nadaje komus uprawnienia to mozna
zadecydowac czy moze modyfikowac nie swoje teksty, czy moze wogole
edytowac teksty, czy moze zagladac do szpiega, itd ...

Moim zdaniem podczas edycji do zmiennej sesji przepisujesz gdzies uzytkownika
i wten sposob przelogowujesz sie na niego.
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: 12.07.2025 - 22:28