Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zwracanie danych sesyjnych
Forum PHP.pl > Forum > PHP
Panicz74
Witam,

Mam taki problem... Chciałby zwrócić sobie zmienne sesyjne, które powstały w funkcji logowania. Zmienne te będą mi potrzebne w wielu miejscach. Niestety var_dump zwraca null. Czy ktoś jest w stanie pomóc mi znaleźć błąd?

[functions.php]funkcja logowanie, która ustawia zmienne $_SESSION['uid'] oraz $_SESSION['uname']:
  1. public function loginUser($email, $password)
  2. {
  3. global $pdo;
  4. $query = $pdo->prepare("SELECT id, username FROM users WHERE email = ? AND password = ?");
  5. $query->execute(array($email, $password));
  6. $userdate = $query->fetch();
  7.  
  8. $num = $query->rowCount();
  9. if($num == 1)
  10. {
  11. //session_start();
  12. $_SESSION['login'] = true;
  13. $_SESSION['uid'] = $userdata['id'];
  14. $_SESSION['uname'] = $userdata['username'];
  15. $_SESSION['login_msg'] = 'Login successfully';
  16. return true;
  17. return $_SESSION['uid'];
  18. return $_SESSION['username'];
  19. }
  20. else
  21. {
  22. return false;
  23. }
  24. }


[userProfile.php]a tutaj już inny plik, w którym już te zmienne nie są widoczne -> var_dump zwraca null:
  1. <?php
  2. require_once "functions.php";
  3.  
  4. $user = new LoginRegistration();
  5. $uid = $_SESSION['uid'];
  6. $username = $_SESSION['uname'];
  7.  
  8. var_dump($user);
  9. var_dump($uid);
  10. var_dump($username);
  11.  
  12. if(isset($_REQUEST['id']))
  13. {
  14. $id = $_REQUEST['id'];
  15. }
  16. else
  17. {
  18. header("Location: index.php");
  19. }
  20.  
  21. if(!$user->getSession())
  22. {
  23. header('Location: login.php');
  24. exit();
  25. }
  26. ?>
kapslokk
  1.  
  2. $userdate = $query->fetch();
  3. ....
  4. $_SESSION['uid'] = $userdata['id'];
  5. $_SESSION['uname'] = $userdata['username'];
  6. $_SESSION['login_msg'] = 'Login successfully';

Najpierw $userdate, pozniej $userdata - literówka, gdybyś miał włączone wyświetlanie błędów to by leciały notice'y i byś to zauważył.

  1. return true;
  2. return $_SESSION['uid'];
  3. return $_SESSION['username'];

Wiesz, że to za każdym razem zwraca tylko true?
Panicz74
Oto dowód, że zmęczenie nie pozwala dobrze mysleć. Dzięki za pomoc:) Idę sie przespać...
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.