Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesje
Forum PHP.pl > Forum > PHP
Sakr
Jak pobrać dane z bazy do sesji?
Taki zapis nie przynosi efektów $_SESSION['id'] = $id; ,
chciałem sprawdzić czy taki zapis będzie działał i wpisując echo "Witaj <b>".$_SESSION['id']."</b>"; nic się nie wyświetla.
SpiritCode
A masz inicjalizację sesji?
Sakr
tak
com
a masz włączone wyświetlanie wszystkich błędów tzn tak jak tu pisze Temat: Jak poprawnie zadac pytanie ? wink.gif
Sakr
Żadne błędy się nie wyświetlają.
com
ale ja pytam czy masz je włączone, bo połowa osób która tu na forum przychodzi nie ma, a potem nie wiedzą czemu im coś nie działa, druga sprawa kodowanie utf-8 bez bom?
http://ideone.com/431ZiK
Sakr
tak mam włączone.
com
to poproszę kod, to jest podstawa smile.gif
Sakr
$id = 1; questionmark.gif
Zmienną ma pobrać z mysql.
com
to jest przykład a ja proszę twój kod, bo go sobie nie wyczaruje biggrin.gif
Sakr
  1. <?php
  2. include 'config.php';
  3. ini_set('display_errors','1');
  4.  
  5.  
  6. if (isset($_POST['loguj']))
  7. {
  8. $login = filtruj($_POST['login']);
  9. $haslo = filtruj($_POST['haslo']);
  10.  
  11.  
  12. if (mysql_num_rows(mysql_query("SELECT * FROM uzytkownik WHERE login = '".$login."' AND haslo = '".md5($haslo)."';
  13. ")) > 0)
  14. {
  15. $_SESSION['login'] = $login;
  16. $_SESSION['id'] = $id;
  17. $_SESSION['zalogowany'] = true;
  18.  
  19.  
  20. }
  21. else echo "Wpisano złe dane.";
  22.  
  23. }
  24.  
  25. if ($_SESSION['zalogowany']==true)
  26. {
  27.  
  28. header("refresh:0;url=../klient.php");
  29.  
  30. }
  31.  
  32. if ($_SESSION['zalogowany']==false){
  33.  
  34. header("refresh:0;url=../index.php")
  35. }
  36.  
  37. ?>
com
zabrakło session_start(); na samym początku po <?php po to był ten przykład, że mogłeś to samemu zauważyć smile.gif
sazian
to teraz popatrz na ten kod i powiedz gdzie przypisujesz cokolwiek do $id
Sakr
session_start(); jest w 'config.php';
com
ok smile.gif no ale tak jak zauważył sazian przypisujesz tam coś co nie istnieje to dlatego jest puste, zrób sobie var_dump($_SESSION);
Sakr
$id = mysql_query("SELECT id FROM uzytkownik"); hyyyyy tutaj??
com
to gdzieś w fragmencie którego nie pokazałeś, nie tak tylko http://php.net/manual/pl/function.mysql-fetch-array.php smile.gif

zrobileś var_dump($_SESSION); ? pokaż wynik
Sakr
array(3) { ["login"]=> string(3) "test" ["id"]=> int(0) ["zalogowany"]=> bool(true) }
com
no to sesje Ci działają tak jak maja? a żeby zapisać w $id poprawne id to musisz tak jak napisałem post wyżej, ale itak tego fragmentu $id = mysql_query("SELECT id FROM uzytkownik"); w tym kodzie nigdzie nie ma?
Sakr
zrobiłem jak napisałeś i jak testuję nieważne na jakim koncie zawsze wyświetla 0.
com
pokaż kod smile.gif

a takie pytanie wylogowujesz się i niszczysz sesje?
Sakr
$id = mysql_query("SELECT id FROM uzytkownik");

while ($row = mysql_fetch_array($id, MYSQL_NUM))
com
i robisz tak $_SESSION['id']= $row[0]; ?

$id = mysql_query("SELECT id FROM uzytkownik WHERE login = '$login'"); i tak smile.gif i while niepotrzebne smile.gif

tzn tak $row = mysql_fetch_array($id, MYSQL_NUM);
Sakr
teraz to nic nie pokazuje
com
dobra pokaz to jeszcze raz całe smile.gif bo nie ma co zgadywać
Sakr
  1. <?php
  2. include 'config.php';
  3. ini_set('display_errors','1');
  4.  
  5.  
  6. if (isset($_POST['loguj']))
  7. {
  8. $login = filtruj($_POST['login']);
  9. $haslo = filtruj($_POST['haslo']);
  10.  
  11.  
  12. if (mysql_num_rows(mysql_query("SELECT * FROM uzytkownik WHERE login = '".$login."' AND haslo = '".md5($haslo)."';
  13. ")) > 0)
  14. {
  15.  
  16.  
  17. $id = $row = mysql_fetch_array($id, MYSQL_NUM);
  18.  
  19. $_SESSION['login'] = $login;
  20. $_SESSION['id']= $row['id'];
  21. $_SESSION['zalogowany'] = true;
  22.  
  23. }
  24. else echo "Wpisano złe dane.";
  25.  
  26. }
  27.  
  28. if ($_SESSION['zalogowany']==true)
  29. {
  30.  
  31. header("refresh:0;url=../klient.php");
  32.  
  33. }
  34.  
  35.  
  36. if ($_SESSION['zalogowany']==false)
  37.  
  38. header("refresh:0;url=../index.php")
  39.  
  40.  
  41. ?>
  42.  
  43. <?php mysql_close(); ?>
com
nie
  1. $id = mysql_query("SELECT id FROM uzytkownik WHERE login = '$login'");
  2. $row = mysql_fetch_array($id, MYSQL_NUM);
  3. $_SESSION['id']= $row[0];

tak smile.gif
Sakr
wynik: Resource id #8
com
tego kodu co masz powyżej? nie możliwe na pewno masz tak samo jak podałem?

  1. <?php
  2. include 'config.php';
  3. ini_set('display_errors','1');
  4.  
  5.  
  6. if (isset($_POST['loguj']))
  7. {
  8. $login = filtruj($_POST['login']);
  9. $haslo = filtruj($_POST['haslo']);
  10.  
  11.  
  12. if (mysql_num_rows(mysql_query("SELECT * FROM uzytkownik WHERE login = '".$login."' AND haslo = '".md5($haslo)."';
  13. ")) > 0)
  14. {
  15.  
  16.  
  17. $id = mysql_query("SELECT id FROM uzytkownik WHERE login = '$login'");
  18. $row = mysql_fetch_array($id, MYSQL_NUM);
  19.  
  20. $_SESSION['login'] = $login;
  21. $_SESSION['id']= $row[0];
  22. $_SESSION['zalogowany'] = true;
  23.  
  24. }
  25. else echo "Wpisano złe dane.";
  26.  
  27. }
  28.  
  29. if ($_SESSION['zalogowany']==true)
  30. {
  31.  
  32. header("refresh:0;url=../klient.php");
  33.  
  34. }
  35.  
  36.  
  37. if ($_SESSION['zalogowany']==false)
  38.  
  39. header("refresh:0;url=../index.php")
  40.  
  41.  
  42. ?>
  43.  
  44. <?php mysql_close(); ?>
Sakr
dobra dzięki smile.gif już wiem twój kod jest dobry ale ja nie skasowałem: $_SESSION['id'] = $id;
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.