Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] SESJE I PANEL ADMINA
Forum PHP.pl > Forum > Przedszkole
Mudkip
Sluchajcie... jestem poczatkujący i próbuje stworzyć panel admina na podstawie sesji, coś jest jednak nie tak, bo po dobrym zalogowaniu i probie klikniecia w link (ten od jakis funkcji panelu) wyrzuca mnie zupełnie ;(

Mam wrażenie, że sesje nie przekazują dalej danych admina tzn loginu i hasla, wiec logiczne, że warunek nie zostanie spełniony i wyświetli formularz do logowania...

Pomoże mi ktoś ?

Tu zamieszczam kod :

  1. <?php
  2.  
  3. function start()
  4. { 
  5. echo('START
  6. <a href="admin.php?co=start">Start</a>
  7. <a href="admin.php?co=loginy">Loginy</a>
  8. <a href="admin.php?co=lista">Lista</a>
  9. <a href="admin.php?co=logout">Logout</a>
  10. ');
  11. }
  12.  
  13. function loginy()
  14. { 
  15. echo('LOGINY
  16. <a href="admin.php?co=start">Start</a>
  17. <a href="admin.php?co=loginy">Loginy</a>
  18. <a href="admin.php?co=lista">Lista</a>
  19. <a href="admin.php?co=logout">Logout</a>
  20. ');
  21. }
  22.  
  23. function lista()
  24. { 
  25. echo('LISTA
  26. <a href="admin.php?co=start">Start</a>
  27. <a href="admin.php?co=loginy">Loginy</a>
  28. <a href="admin.php?co=lista">Lista</a>
  29. <a href="admin.php?co=logout">Logout</a>
  30. ');
  31. }
  32.  
  33. function logout()
  34. {
  35. session_unset ( "userid" ); 
  36. session_unset ( "password" );
  37. echo "Wylogowano";
  38. }
  39.  
  40. echo '<meta
  41. http-equiv=Content-Type
  42. content="text/html; charset=UTF-8">';
  43. if ($userid == "") {
  44. print "<form action=$PHP_SELF method="post"><table align=center width="590"><tr><td colspan=2><b>Panel Administratora</b></td></tr>";
  45. print "<tr><td><b>Login:</b></td><td><input type=text name=userid></td></tr>";
  46. print "<tr><td><b>Hasło:</b></td><td><input type=password name=password></td></tr><tr><td> </td><td><input type=submit value="Zaloguj"></td></tr></form></table>1";
  47.  
  48.  } elseif ( ISSET ( $userid ) ) {
  49.  
  50. $link =mysql_connect("localhost", "login","haslo");
  51. if (! $link){
  52. exit();
  53. }
  54. if (!mysql_select_db ("mojabaza", $link) ) {
  55. exit ();
  56. }
  57. $query="SELECT * FROM helpdesk_admin WHERE login='".$userid."'";
  58. $result=mysql_query($query);
  59. $rl = mysql_fetch_array($result);
  60. $useridbaza = $rl[login];
  61. $passwordbaza = $rl[haslo];
  62.  
  63. if (($password == $passwordbaza) && ($userid == $useridbaza)) {
  64.  
  65. session_register("userid");
  66. session_register("password");
  67.  
  68. echo "zalogowany!";
  69.  
  70. $co=$_GET['co'];
  71. if ($co == 'loginy') {loginy();}
  72. elseif ($co == 'lista') {lista();}
  73. elseif ($co == 'logout') {logout();}
  74. else {start();}
  75.  
  76. } else {
  77. print "<form action=$PHP_SELF method="post"><table align=center width="590"><tr><td colspan=2><b>Panel Administratora</b></td></tr>";
  78. print "<tr><td><b>Login:</b></td><td><input type=text name=userid></td></tr>";
  79. print "<tr><td><b>Hasło:</b></td><td><input type=password name=password></td></tr><tr><td> </td><td><input type=submit value="Zaloguj"></td></tr></form></table>";
  80. }
  81. }
  82. ?>
wipo
zamiast sessiom_register wpisz $_SESSION['zmienna']=wartosc;
Mudkip
ok sprobuje, wyczytalem tez ze musze recznie dodawac do linkow id sesji, czy to prawda ?
wipo
ja nie używam jak nie trzeba (jeżeli chodzi Ci o session_id to jest dodawane automatycznie)
Mudkip
niestety nie dziala ;/
1010
A czy masz wogóle gdzieś jakieś sprawdzanie czy jest sesja? Bo przeleciałem kod i nie zauważyłem
sprawdzaj takim kodem:
  1. <?php
  2. if(isset($_SESSION['nazwa_sesji'])){
  3. print "jest";
  4. }else
  5. {
  6.  print "nie ma";
  7. }
  8. ?>
Mudkip
Troche skorygowalem , ale dalej nie dziala

  1. <?php
  2.  
  3. if (  ( ISSET($_SESSION['userid']) ) && ( ISSET ($_SESSION['password']) )  ) 
  4. {
  5. $userid=$_SESSION['userid'];
  6. $password=$_SESSION['password'];
  7. echo "pobrano z sesji";
  8. }
  9.  
  10.  
  11. function start()
  12. { 
  13. echo('START
  14. <a href="admin.php?co=start">Start</a>
  15. <a href="admin.php?co=loginy">Loginy</a>
  16. <a href="admin.php?co=lista">Lista</a>
  17. <a href="admin.php?co=logout">Logout</a>
  18. ');
  19. }
  20.  
  21. function loginy()
  22. { 
  23. echo('LOGINY
  24. <a href="admin.php?co=start">Start</a>
  25. <a href="admin.php?co=loginy">Loginy</a>
  26. <a href="admin.php?co=lista">Lista</a>
  27. <a href="admin.php?co=logout">Logout</a>
  28. ');
  29. }
  30.  
  31. function lista()
  32. { 
  33. echo('LISTA
  34. <a href="admin.php?co=start">Start</a>
  35. <a href="admin.php?co=loginy">Loginy</a>
  36. <a href="admin.php?co=lista">Lista</a>
  37. <a href="admin.php?co=logout">Logout</a>
  38. ');
  39. }
  40.  
  41. function logout()
  42. {
  43. session_unset("userid");
  44. session_unset("password");
  45. echo "Wylogowano!";
  46. }
  47.  
  48. echo '<meta
  49. http-equiv=Content-Type
  50. content="text/html; charset=UTF-8">';
  51. if ((!ISSET($userid)) || (!ISSET($password))) { 
  52. print '<form action="admin.php" method="post"><table align=center width="590"><tr><td colspan=2>
  53. <b>Panel Administratora</b></td></tr>';
  54. print '<tr><td><b>Login:</b></td><td><input type=text name=userid></td></tr>';
  55. print '<tr><td><b>Hasło:</b></td><td><input type=password name=password></td></tr>
  56. <tr><td>&nbsp</td><td><input type=submit value="Zaloguj"></td></tr></form></table>';
  57.  
  58.  } else {
  59.  
  60. $link =mysql_connect("localhost", "login","haslo");
  61. if (! $link){
  62. exit();
  63. }
  64. if (!mysql_select_db ("baza", $link) ) {
  65. exit ();
  66. }
  67. $query="SELECT * FROM helpdesk_admin WHERE login='".$userid."'";
  68. $result=mysql_query($query);
  69. $rl = mysql_fetch_array($result);
  70. $useridbaza = $rl[login];
  71. $passwordbaza = $rl[haslo];
  72.  
  73. if (($password == $passwordbaza) && ($userid == $useridbaza)) {
  74.  
  75. $_SESSION['userid']=$userid;
  76. $_SESSION['password']=$password;
  77.  
  78. echo "wrzucono do sesji ||zalogowany!";
  79. $co=$_GET['co'];
  80. if ($co == 'loginy') {loginy();}
  81. elseif ($co == 'lista') {lista();}
  82. elseif ($co == 'logout') {logout();}
  83. else {start();}
  84.  
  85. } else {
  86. print '<form action="admin.php" method="post"><table align=center width="590"><tr><td colspan=2><b>
  87. Panel Administratora</b></td></tr>';
  88. print '<tr><td><b>Login:</b></td><td><input type=text name=userid></td></tr>';
  89. print '<tr><td><b>Hasło:</b></td><td><input type=password name=password></td></tr>
  90. <tr><td>&nbsp</td><td><input type=submit value="Zaloguj"></td></tr></form></table>';
  91. }
  92. }
  93. ?>
Luke_Star
co do dodawania do linków ID sesji to prawdopodobnie php nei jest skonfigurowany z "--enable-trans-sid" da sie to załatwic za pomoca funkcji "ini_set". Czasem dziala czasem nie smile.gif A co do sprawdzania czy sesja istnieje czy nie polecam raczej zamiast "jest" lyb "nie ma" walnąc funkcje sprawdzania
  1. <?php
  2. function checkSession () {
  3.  if (ISSET($_SESSION['nazwa_sesji'])) {
  4. return 1;
  5. }
  6. else {
  7. return 0;
  8.  }
  9. }
  10. ?>


przydaje sie jak sie człowiek przyzwyczaja do obiektowego smile.gif Łatwo wtedy dobrac odpowiednia akcje i szybsza edycja jest
Mudkip
sluchajcie zrobilem sobie "markery" , zaraz po przetworzeniu formularza i po wystartowaniu sesji, w sesjach jeszcze nic nie ma, bo jeszcze nie sprawdzono z baza, ale juz po sprawdzeniu i ustawieniu do sesji, odpowiednich zmiennych, to czytam je :
  1. <?php
  2. $_SESSION['userid']=$userid;
  3. $_SESSION['password']=$password;
  4. echo "login:".$_SESSION['userid'];
  5. echo "haslo:".$_SESSION['password'];
  6. ?>


i mi wyswietla...

zauwazylem tez ze moze to byc spowodowane gubieniem sesji, jak daje zeby mi pokazywal moje session id to po kazdym odswiezeniu mam inne, nalezy tu jeszcze wspomniec ze ja mam Win Viste, zaraz lookne jak na moich innych kompach z winda xp

jak to jest? czy jezeli zmieni sie id sesji jakiegos uzytkownika to skasuja mu sie dane jego sesji? czyli inaczej mowiac czy normalne jest , ze po kazdym odswiezeniu strony mam inne session id ?
erix
Nie można głośniej?

Cytat
czy jezeli zmieni sie id sesji jakiegos uzytkownika to skasuja mu sie dane jego sesji?

Najprościej rzecz ujmując - tak. To jest jak numerek w szatni - jeśli go zgubisz, nie będziesz mógł dostać się do swoich ubrań.

Cytat
czyli inaczej mowiac czy normalne jest , ze po kazdym odswiezeniu strony mam inne session id

Jeśli masz zablokowane ciasteczka i nie przekazujesz identyfikatora między stronami, to jest normalne. No bo skąd parser ma wiedzieć, jaki masz identyfikator?
Mudkip
no wlasnie, wiec sie dziwie, bo co kolejne odswiezenie strony to mam inne ses id, a cooki mam odblokowane, robilem nawet testy zeby mnie informowal jak cookie sa wysylane, ale nic nie slychac, inne cookie owszem, ale te moje do mnie nie dociera, nalezy tez wspomniec ze testuje na lycosie

XXXXXXXXXXXXXXXXXXXXXXXXXXX

Dobra ... temat do zamkniecia, wyglada na to , ze Lycos ma problemy z cookie no i z sesjami takze... postawilem swoj serwer i wszystko dziala ladnie i pieknie winksmiley.jpg

podsumowujac lycos gubil sid uzytkownika wiec bylo zamieszanie...
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.