Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PDO sesja użytkownika
Forum PHP.pl > Forum > Przedszkole
niegrzeczny
Zamierzam zrezygnować ze starego mysql i przekonwertować wszystko na PDO. I mam taki problem: chcę wyświetlić dane użytkownika na podstawie S_SESSION['user_id'] gdzie S_SESSION['user_id'] = columna user_id z tablicy users.

W PDO user_id z tablicy nie chce przypisać sie do sesji i kiedy próbuje wyświetlić informacje użytkownika to pojawia sie Notice: Undefined index: user_id in
  1. ....
  2.  
  3. $user = new User;
  4. $user_id = $_SESSION['user_id']; //tutaj pojawia się Notice: Undefined index: user_id in
  5.  
  6. $data = $user->userInfo($user_id);
  7. echo $data['username'],'<br />';
  8. echo $data['email'],'<br />';

lub zaloguj się
  1. if(isset($_SESSION['user_id'])){
  2.  
  3. $data = $user->userInfo($user_id);
  4.  
  5. echo '<pre>';
  6. print_r($data);
  7. echo '</pre>';
  8.  
  9. echo $data['username'],'<br />';
  10. echo $data['email'],'<br />';
  11.  
  12. }else {
  13. echo 'Zaloguj się';
  14. }

Class
  1. class User {
  2. public $user_id = null;
  3.  
  4. public function userInfo($user_id) {
  5. global $db;
  6.  
  7. $query = $db->prepare("SELECT user_id, username, email FROM users WHERE user_id = :id");
  8. $query->bindValue(':id', $user_id);
  9. $query->execute();
  10.  
  11. return $query->fetch();
  12. }
  13.  
  14. public function login($username, $password){
  15. global $db;
  16.  
  17. $query = $db->prepare("SELECT COUNT(user_id) as count, user_id FROM users WHERE username = :user AND password = :pass");
  18.  
  19. $query->bindValue(':user', $username);
  20. $query->bindValue(':pass', $password);
  21. $query->execute();
  22.  
  23. $result = $query->fetchColumn();
  24.  
  25. if ($result) {
  26. $this->user_id = $result['user_id'];
  27. }
  28.  
  29. return $result;
  30. }
  31. }

login.php
  1. $user = new User;
  2. $logowanie = $user->login($username, $password);
  3.  
  4. if($logowanie) {
  5. $_SESSION['user_id'] = $user->user_id; // tutaj user_id z tablicy nie jest przypisany do sesji
  6. header('Location: konto.php');
  7. exit();
  8. } else {
  9. $errors[] = 'Niepoprawne dane!';
  10. }

Jak przypisać user_id z tablicy do $_SESSION['user_id']; questionmark.gif
nospor
$result = $query->fetchColumn();
if ($result) {
$this->user_id = $result['user_id'];
}

Jak można się czegoś "uczyć" nie zaglądając w ogóle do instrukcji jak tego czegoś używaćquestionmark.gif

http://pl1.php.net/manual/en/pdostatement.fetchcolumn.php
Zajrzyj tu, zobacz co ta funkcja zwrraca i przestan zgadywać. Maszz wszystko czarno na białym napisane co fetchColumn zwraca.... I tam nie ma żadnej tablicy


I jeszcze temat w dziale OOP..... zakładaj swoje wątki w dziale przedszkole. Tam też przenosze.

I włącz wyświetlanie błędów, to takie kwiatki będziesz widział od razu. Tu masz napisane jak
Temat: Jak poprawnie zada pytanie
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.