Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problemy z session destroy ...
Forum PHP.pl > Forum > Przedszkole
gustafitka
Mam Problem Co do sesji nie potrafię zrozumieć czemu tak się dzieje.
W skrypcie który jest poniżej jest za haszowana cała sekcja wylogowania.
To wtedy mój skrypt przy próbie logowania się normalnie rozpoznaje czy to jest admin czy użytkownik.
I przesyła na stronę z rozróżnieniem jakie mam prawa użytkownik a jakie administrator - w moim wypadku tworzenie nowego użytkownika.
Jeżeli je od haszuje to bez różnicy czy jest to użytkownik czy admin to i tak przesyła na stronę gdzie moze tworzyć nowego użytkownika. Nie wiem jak to zrobić aby to było dobrze lub czy moge to wogule skasować.

  1. <?
  2. // Na samej g�rze zadeklaruj sesj�.
  3. include("konfiguracja.php");
  4.      session_start();
  5.      $_SESSION['admin']=false;
  6. // Sekcja wylogowywania
  7. //if ($_GET['logout']='end'){
  8. //session_destroy();
  9. //}
  10. // Sekcja logowania
  11. $login=$_POST['login'];
  12. if($login) {
  13. // W momencie klikni�cia w przycisk formularza
  14.  
  15. $uzytkownik=$_POST['uzytkownik'];
  16. $haslo=$_POST['haslo'];
  17.  
  18.  
  19. $baza = pg_connect("dbname=".DB_DATABASE." user=".DB_SERVER_USERNAME." port=5432 password=".DB_SERVER_PASSWORD." host=".DB_SERVER );
  20.  
  21. $rezultat=pg_query("select * FROM logowanie WHERE uzytkownik='$uzytkownik' AND haslo='$haslo'");
  22.   if(@pg_num_rows($rezultat)){
  23.         $dane = pg_fetch_object($rezultat);
  24.      $_SESSION['admin']=$dane->admin;
  25.   session_register("uzytkownik"); // Zapamiďż˝tuje zmiennďż˝ sesji
  26.  
  27.    header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/main.php");
  28.  
  29.    exit;
  30.  }
  31.  else
  32.  {
  33.  $message="Nieprawidłowa nazwa użytkownika lub hasło.";
  34.  }
  35. } // Koniec sprawdzania autoryzacji.
  36. ?>
  37. <head>
  38.  
  39. <title>Dokument</title>
  40. <LINK REL="Stylesheet" HREF="styl1.css" TYPE="text/css">
  41. </head>
  42.  <body>
  43. <? echo $message; ?>
  44. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  45.  <table>
  46.    <tr>
  47.      <td>Użytkownik: </td>
  48.      <td><input name="uzytkownik" type="text" id="uzytkownik" /></td>
  49.    </tr>
  50.    <tr>
  51.      <td>Hasło: </td>
  52.      <td><input name="haslo" type="password" id="haslo" /></td>
  53.    </tr>
  54.  </table>
  55. <input name="login" type="submit" id="login" value="login" />
  56.  
  57. <p><a href="index.html"><h2>Powrót  do wyboru użytkownika.</h2></a></p>
  58. </form>
  59. </body>
  60. </html>
slawny
  1. <?php
  2. // Sekcja wylogowywania
  3. //if ($_GET['logout']='end'){
  4. //session_destroy();
  5. //}
  6. // Sekcja logowania
  7. ?>


w if daj ==
kkuba
Wyjaśnij nieco czytelniej o co Ci chodzi. 



Domyślam się, że nie tylko ja mam problem ze zrozumieniem tego, co napisałeś :F





//edit: aha, chodziło o kod ZAKOMENTOWANY, a nie zahashowany.. -.- I się dziwić, dlaczego nie zrozumiałem. 
gustafitka
Dokończając to co było napisane to tak jak mówiłem ze jak loguje się na użytkownika czy na admina. To przenosi mnie wtedy na stronę gdzie na różnica po między logowaniami jest tak że Admin ma jeszcze możliwość tworzenia użytkownika a sam użytkownik nie.Może gdzieś mam złe napisany skrypt uczę się wiec nie zawsze mi wszystko wychodzi.

To jest ta strona :

  1. <?
  2. include("konfiguracja.php");
  3. session_start(); // Na samej górze zadeklaruj sesję.
  4. if(!session_is_registered("uzytkownik")){ // Sprawdza zmienną sesji.
  5. header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/logowanie.php"); // Przekierowanie do index.php
  6.  }
  7.  else{
  8.      $_SESSION['wybor']= "0";
  9.    $_SESSION['edycja'] = "0" ;
  10.  
  11. ?>
  12. <?
  13. if (is_null($_SESSION['uzytkownik'])){
  14.    exit ;
  15. }
  16. ?>
  17. <html>
  18. <head>
  19. <LINK REL="Stylesheet" HREF="styl1.css" TYPE="text/css">
  20. <title>Dokument</title>
  21. </head>
  22.    <body>
  23. <p><h3>Witaj <? echo $_SESSION['uzytkownik']; ?>! Logowanie udane.</h3></p>
  24. <p><a href="szukanie.php"><h3>Szukanie pracowników</h3></a></p>
  25. <p><a href="dodaj.php?wybor=1"><h3>Dodawanie nowych pracowników</h3></a></p>
  26. <?
  27. $test=$_SESSION['admin'];
  28. if($test!="f")
  29.      {
  30. echo "<p><a href='rejestracja.php'><h3>Dodawanie nowych użytkowników</h3></a></p>";
  31. }
  32. ?>
  33. <p><a href="obliczanie.php"><h3>Wyliczanie pensji</h3></a></p>
  34. <p><a href="menugrafika.php"><h3>menu grafiki</h3></a></p>
  35. <p><a href="logowanie.php"><h2>Wyloguj</h2></a></p>
  36. <a href="help/pomoc.html"><img src="znak.jpg" alt="(2kB)" align="right" border=0 height=25 width=15></a>
  37. </body>
  38. </html>
  39. <?
  40. }
  41. ?>


To jest to co różni admina od użytkownika:
  1. <?
  2.  $test=$_SESSION['admin'];
  3.  if($test!="f")
  4.        {
  5.  echo "<p><a href='rejestracja.php'><h3>Dodawanie nowych użytkowników</h3></a></p>";
  6.  }
  7.   ?>
Maxik
Nie !session_is_registered("uzytkownik") , a !isset($_SESSION['uzytkownik']) i nie $test!="f" a $test
gustafitka
Czyli poprawki takie jak mi zasugerowałeś maja być wyglądać tak :

  1. <?php
  2. session_register("uzytkownik");                 <- było  tak
  3.   !isset($_SESSION['uzytkownik']);            <- a tak jest
  4. ?>


i to drugie

  1. <?php
  2. $test=$_SESSION['admin'];
  3. if($test!="f")
  4.  
  5. a teraz jest tak
  6.  
  7. $test=$_SESSION['admin'];
  8. if($test)
  9. ?>


Teraz dobrze
Maxik
Zamiast session_register daj $_SESSION['uzytkownik']=true; to co podałem to warunek stąd:
  1. <?php
  2. if(!session_is_registered("uzytkownik")){ // Sprawdza zmienną sesji.
  3. header("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/logowanie.php"); // Przekierowanie do index.php
  4. }
  5. ?>
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.