Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]problem z sesjami
Forum PHP.pl > Forum > Przedszkole
kingofspace
stworzylem skrypt logowania po cieżkim mękach wygląda tak

  1. <?php
  2. session_register("zalogowany");
  3.  
  4. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  5.  
  6. require('include/baza.php');
  7. include('include/lay.php');
  8.  
  9.  
  10. headstr($title = "Strona główna");
  11.  
  12. echo('<div id="left">');
  13.  
  14. echo('<div class="n">
  15. <div class="nt">
  16. <h1>Logowanie</h1>');
  17. $user=$_POST["user"];
  18. $haslo=$_POST["haslo"];
  19. //filtrowanie zmiennych
  20. $haslo=mysql_real_escape_string($haslo);
  21. $user=strip_tags($user);
  22. $haslo=strip_tags($haslo);
  23. //zakodowanie hasla
  24. $haslo=MD5($haslo);
  25.  
  26.  
  27. $zapytanie = "SELECT * FROM users WHERE user_login='$user' AND user_haslo='$haslo'";
  28. $wynik=mysql_query($zapytanie);
  29. $wiersze = mysql_num_rows($wynik);
  30. $zwrotnik=mysql_fetch_array($wynik);
  31.  
  32. $_zwrotnik["user_id"]=$userid;
  33. $_zwrotnik["user_login"]=$userlogin;
  34. $_zwrotnik["user_mail"]=$usermail;
  35. $_zwrotnik["user_status"]=$userstatus;
  36. $_zwrotnik["user_kasa"]=$userkasa;
  37. $_zwrotnik["user_ranga"]=$userranga;
  38.  
  39.  
  40. if($wiersze=1)
  41. {
  42. $_SESSION["zalogowany"]=1;
  43. $_SESSION["login"]=$user;
  44. if($userstatus=confirm)
  45. {
  46. if($userranga=0)
  47. {
  48. $_SESSION["kasa"]=$userkasa;
  49. $_SESSION["ranga"]=administrator;
  50. echo('Zalogowano jako administrator<br/>');
  51. echo('<a href="/admpanel.php">Przejdź do panelu admina</a>');
  52. }
  53. else
  54. {
  55. $_SESSION["kasa"]=$userkasa;
  56. $_SESSION["ranga"]=uzytkownik;
  57. echo('Zalogowano jako użytkownik<br/>');
  58. echo('<a href="panel.php">Przejdź do panelu użytkownika</a>');
  59. }
  60.  
  61. }
  62. else
  63. {
  64. echo('to konto niezostalo jeszcze aktywowane odbierz poczte albo skontaktuj sie z administratorem serwisu');
  65. }
  66.  
  67.  
  68.  
  69. }
  70. else
  71. {
  72.  
  73. Zalogowanie nie bylo możliwe zly login lub haslo
  74.  
  75.  
  76.  
  77. ');
  78.  
  79.  
  80.  
  81.  
  82.  
  83. }
  84.  
  85.  
  86.  
  87.  
  88.  
  89. echo('</div><div class="nb"><br/><div><a href="#"><br/></a></div></div>
  90. </div>');
  91.  
  92. echo('</div>');
  93. footstr();
  94. ?>
  95.  
  96.  
  97.  
  98.  




teraz pracuje nad plikiem ktory by wymagal autoryzacji lecz nie dziala

  1. <?php
  2.  
  3. include('include/lay.php');
  4. headstr($title = "Strona główna");
  5.  
  6. if($_SESSION["zalogowany"]=1)
  7. {
  8. //początek strony
  9. echo('<pre>');
  10. print_r($_SESSION);
  11. echo('</pre>');
  12. $userkasa=$_SESSION["kasa"];
  13. <div class="n">
  14. <div class="nt">
  15. <h1>Nowa wiadomość</h1>
  16. </div>
  17. ');
  18. echo('<table width="100%" border="0" align="center">');
  19. echo('<tr>');
  20. echo('<td>Stan'); echo($userkasa); echo('</td>');
  21. echo('</tr>');
  22. echo('</table>');
  23. echo('
  24. <div class="nb"><br/> <div><a href="#"><br/></a></div></div>
  25. </div>
  26. ');
  27.  
  28. //koniec strony
  29. }
  30. else
  31. {
  32. echo('zaloguj się aby uzyskac dostęp do tej strony');
  33. }
  34. footstr();
  35. ?>


w pliku login.php ladnie mi wyswietla tablice $_SESSION lecz gdy probuje cos pobrac z niej w pliku portfel.php
to lipa nic tam jak wyswietlam tablice mam tylko

Array
(
[zalogowany] => 1
)
darko
Sprawdź, co zapisujesz w sesji, a co próbujesz z niej wyciągnąć, z pustego i Salomon nie naleje...
kingofspace
w pliku login.php
mam kod
  1. $_SESSION["kasa"]=$userkasa;
  2. $_SESSION["ranga"]=administrator;


wjec wydaje mi sie ze to powinno sie zapisac w sesji
i jak w login.php uzyj epolecenia
  1. print_r($_SESSION);


to ladnie mi wyswietla co zapisalem do sesji
patryczakowy
linia 34 - 39 odwrotna kolejność zmiennych
w instrukcjach warunkowych żeby coś sprawdzić czy jest równe jakiejś liczbie pisze się == dwa znaki pisząc jeden przypisujesz nową wartość do tej zmiennej
kingofspace
to ze w lini 34-39 mam pobranie z tablicy ktora zostala wygenerowana z zapytania do bazy czy z tablicy zapisalem dane do zwyklych zmiennych a te == poprawie i przetestuje
darko
Błędy masz tu, Ty nie sprawdzasz czy równe tylko podstawiasz:

if($wiersze=1)

if($userstatus=confirm)

if($userranga=0)


Jeśli chcesz sprawdzić czy $A jest równe $B to ma wyglądać to tak: if($A == $B) a nie if($A = $B)
podstawy!


if($_SESSION["zalogowany"]=1)


Poza tym czy masz jakąś stałą uzytkownik?
$_SESSION["ranga"]=uzytkownik;
Próbujesz ją zapisać w sesji, ale nie wiem czy chodziło Ci o $_SESSION["ranga"]="uzytkownik"; czy o $_SESSION["ranga"]=$uzytkownik;

Przeanalizuj swój kod

kingofspace
wytłumaczcie mi jeszcze warunki
mam taki warunek

  1. if($userstatus==confirm)
  2. {
  3. if($userranga==1)
  4. {
  5. $_SESSION["kasa"]=$userkasa;
  6. $_SESSION["ranga"]=administrator;
  7. echo('Zalogowano jako administrator<br/>');
  8. echo('<a href="/admpanel.php">Przejdź do panelu admina</a>');
  9. }
  10. else
  11. {
  12. $_SESSION["kasa"]=$userkasa;
  13. $_SESSION["ranga"]=uzytkownik;
  14. echo('Zalogowano jako użytkownik<br/>');
  15. echo('<a href="panel.php">Przejdź do panelu użytkownika</a>');
  16. }
  17.  
  18. }
  19. else
  20. {
  21. echo('to konto niezostalo jeszcze aktywowane odbierz poczte albo skontaktuj sie z administratorem serwisu');
  22. }


w bazie napewno mam confirm wjec dlaczego wykonuje mi sie blok kodu po else

powinnien sie pierwszy blok wykonać
patryczakowy
linia 34- 39 jest źle dlatego masz pustą tablice SESSION wstaw na odwrót a się przekonasz

  1. if($userstatus=='confirm')
kingofspace
poprawilem to co mowiliscie ale nadal nie dziala skrypt logowania staje na warunku do sprawdzania czy konto potwierdzona
  1. <?php
  2. session_register("zalogowany");
  3.  
  4. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  5.  
  6. require('include/baza.php');
  7. include('include/lay.php');
  8.  
  9.  
  10. headstr($title = "Strona główna");
  11.  
  12. echo('<div id="left">');
  13.  
  14. echo('<div class="n">
  15. <div class="nt">
  16. <h1>Logowanie</h1>');
  17. $user=$_POST["user"];
  18. $haslo=$_POST["haslo"];
  19. //filtrowanie zmiennych
  20. $haslo=mysql_real_escape_string($haslo);
  21. $user=strip_tags($user);
  22. $haslo=strip_tags($haslo);
  23. //zakodowanie hasla
  24. $haslo=MD5($haslo);
  25.  
  26.  
  27. $zapytanie = "SELECT * FROM users WHERE user_login='$user' AND user_haslo='$haslo'";
  28. $wynik=mysql_query($zapytanie);
  29. $wiersze = mysql_num_rows($wynik);
  30. $zwrotnik=mysql_fetch_array($wynik);
  31.  
  32. $userid=$_zwrotnik["user_id"];
  33. $userlogin=$_zwrotnik["user_login"];
  34. $usermail=$_zwrotnik["user_mail"];
  35. $userstatus=$_zwrotnik["user_status"];
  36. $userkasa=$_zwrotnik["user_kasa"];
  37. $userranga=$_zwrotnik["user_ranga"];
  38.  
  39.  
  40. if($wiersze=='1')
  41. {
  42. $_SESSION["zalogowany"]=1;
  43. $_SESSION["login"]=$user;
  44. if($userstatus=='confirm')
  45. {
  46. if($userranga=='1')
  47. {
  48. $_SESSION["kasa"]=$userkasa;
  49. $_SESSION["ranga"]=administrator;
  50. echo('Zalogowano jako administrator<br/>');
  51. echo('<a href="/admpanel.php">Przejdź do panelu admina</a>');
  52. }
  53. else
  54. {
  55. $_SESSION["kasa"]=$userkasa;
  56. $_SESSION["ranga"]=uzytkownik;
  57. echo('Zalogowano jako użytkownik<br/>');
  58. echo('<a href="panel.php">Przejdź do panelu użytkownika</a>');
  59. }
  60.  
  61. }
  62. else
  63. {
  64. echo('to konto niezostalo jeszcze aktywowane odbierz poczte albo skontaktuj sie z administratorem serwisu');
  65. }
  66.  
  67.  
  68.  
  69. }
  70. else
  71. {
  72.  
  73. Zalogowanie nie bylo możliwe zly login lub haslo
  74.  
  75.  
  76.  
  77. ');
  78.  
  79.  
  80.  
  81.  
  82.  
  83. }
  84.  
  85.  
  86.  
  87.  
  88.  
  89. echo('</div><div class="nb"><br/><div><a href="#"><br/></a></div></div>
  90. </div>');
  91.  
  92. echo('</div>');
  93. footstr();
  94. ?>
  95.  
  96.  
  97.  
  98.  


refrshe
Blame
Po pierwsze wyświetl sobie zmienną $userstatus i zobacz co w niej jest.
Po drugie to nie:
  1. $_SESSION["ranga"]=administrator;

tylko:
  1. $_SESSION["ranga"]='administrator';
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.