Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][PHP] Sesja w klasie - problem z używaniem.
Forum PHP.pl > Forum > Przedszkole
Magic Hereos
Cześć. Mam pewnien problem z sesjami - nie chce "wyjść" z klasy - mogę ją zobaczyć wewnątrz(podczas ustawania), a później już nie. Kod klasy:
  1. class User
  2. {
  3. function Login($login, $password, $ip)
  4. {
  5. try
  6. {
  7. $password = md5($password);
  8. $login_query = $GLOBALS["db"]->query_select("SELECT `password` FROM `users` WHERE `login` = '".$login."' LIMIT 0, 1");
  9. }
  10. catch (Exception $error)
  11. {
  12. $GLOBALS["error_r"]->error_mysql($error);
  13. }
  14. if(!empty($login_query))
  15. {
  16. foreach($login_query as $login_array)
  17. {
  18. if($login_array["password"] == $password)
  19. {
  20. echo 'Zalogowano poprawnie.';
  21. $_SESSION["logged"] = $login;
  22. }
  23. else
  24. {
  25. echo 'Złe hasło.';
  26. }
  27. }
  28. }
  29. else
  30. {
  31. echo 'Zły nick.';
  32. }
  33. print($_SESSION["logged"]);
  34. }
  35. }

W index.php mam na samiutkim początku:
  1. <?php
  2. print_r($_SESSION);

No i printuje Array ( )
Dodam, że wysyłam POSTa ajaxem, ale to chyba mało istotne winksmiley.jpg
CuteOne
a session_write_close() masz ?
Magic Hereos
Nie, jednak jak daję:
  1. $_SESSION["logged"] = $login;

to i tak nie działa.
CuteOne
  1.  
  2. class User
  3. {
  4. function Login($login, $password, $ip)
  5. {
  6. try
  7. {
  8. $password = md5($password);
  9. $login_query = $GLOBALS["db"]->query_select("SELECT `password` FROM `users` WHERE `login` = '".$login."' LIMIT 0, 1");
  10. }
  11. catch (Exception $error)
  12. {
  13. $GLOBALS["error_r"]->error_mysql($error);
  14. }
  15. if(!empty($login_query))
  16. {
  17. foreach($login_query as $login_array)
  18. {
  19. if($login_array["password"] == $password)
  20. {
  21. echo 'Zalogowano poprawnie.';
  22. $_SESSION["logged"] = $login;
  23. }
  24. else
  25. {
  26. echo 'Złe hasło.';
  27. }
  28. }
  29. }
  30. else
  31. {
  32. echo 'Zły nick.';
  33. }
  34. print($_SESSION["logged"]);
  35. }
  36. }
  37.  
  38.  
  39. $n = new User;
  40.  
  41. $n->Login($login,$pass,$itp);
  42.  


  1.  
  2. <?php
  3. echo $_SESSION['logged'];
  4. ?>


ps. zauważyłem, że używasz globals... używaj instancji [w dziale PHP na pierwszej/drugiej stronie jest temat o tym]
Magic Hereos
Chodzi Ci o(przykład na klasie User) $zaloguj = User::Login(x,x,x); ?($query = mysqli::query_select())
CuteOne
  1. //w kontrolerze:
  2. USER:: instance()->login();
  3.  


ps. po co używasz klas?
Magic Hereos
Żeby kod był optymalniejszy i łatwo można było wszystko edytować.
CuteOne
To spójrz na swoją klasę.. po wywaleniu class User otrzymasz zwykłą funkcję taką jaką używa się w programowaniu strukturalnym.. a to nijak ma się do optymalizacji

Moja rada - podejrzyj jak piszą takie aplikacje ludzie mądrzejsi od nas smile.gif
Magic Hereos
Cytat(CuteOne @ 15.11.2010, 10:30:31 ) *
To spójrz na swoją klasę.. po wywaleniu class User otrzymasz zwykłą funkcję taką jaką używa się w programowaniu strukturalnym.. a to nijak ma się do optymalizacji

Moja rada - podejrzyj jak piszą takie aplikacje ludzie mądrzejsi od nas smile.gif

Problemem jest to, że kiedy zaczynałem stronę chciałem być informatykiem i poświęcałem dużo swojego czasu. A teraz to po prostu obowiązek wobec strony, którą stworzyłem - także dzięki za wszystko - naprawdę mi pomogłeś, za darmo, takie coś się ceni. Dziękuję.
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.