Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Logowanie i sesje
Forum PHP.pl > Forum > Przedszkole
bangoo
Witam. Pierwszy raz się bawię sesjami i napotkałem taki problem, że niemogę dodawac wartosci do $_SESSION.
  1. <?php
  2.  
  3. function LogInUser($nick,$pswrd){
  4. global $Msg;
  5. $Query = "SELECT * FROM USERS WHERE nick ='".$nick."'";
  6. $Torow = mysql_query($Query);
  7. while($row = mysql_fetch_array($Torow)){
  8.  $id = $row['id'];
  9. $pass = $row['password'];
  10. $rankid = $row['rankid'];}
  11. $pass = md5($pass);
  12. if($pswrd == $pass){
  13. $QueryRank = "SELECT * FROM USERS_RANK WHERE id ='".$rankid."'";
  14. $TorowRank = mysql_query($QueryRank);
  15. while($row = mysql_fetch_array($TorowRank)){
  16. $name = $row['name'];
  17. $articles = $row['articles'];
  18. $articles_category = $row['articles_category'];
  19. $modules = $row['modules'];
  20. $users = $row['users'];
  21. $users_rank = $row['users_rank'];
  22. $forum = $row['forum'];
  23. $headers = $row['headers'];
  24. $config = $row['config'];}
  25.  
  26. //SESJE DO AUTORYZACJI
  27.  
  28. $_SESSION['userid'] = $id;
  29. $_SESSION['userip'] = $_SERVER['REMOTE_ADDR'];
  30. $_SESSION['rankname'] = $name;
  31. $_SESSION['articles'] = $articles;
  32. $_SESSION['articles_category'] = $articles_category;
  33. $_SESSION['modules'] = $modules;
  34. $_SESSION['users'] = $users;
  35. $_SESSION['users_rank'] = $users_rank;
  36. $_SESSION['forum'] = $forum;
  37. $_SESSION['headers'] = $headers;
  38. $_SESSION['config'] = $config;
  39.  
  40. //KONIEC LISTY SESJI
  41. if($CONFIG_Logging = "1"){
  42. AddLog("Do serwisu zalogował się ".$nick);
  43. }
  44. }
  45. else{
  46. $Msg = "Logowanie niepowiodło się!";
  47. }
  48. };
  49. ?>

1.php
  1. <?php
  2. include ('users.inc.php');
  3. LogInUser('maciek','blabla');
  4. print ('<A HREF="2.php">link</A>');
  5. ?>

2.php
  1. <?php
  2. if(isset($_SESSION['userid'])){
  3. echo 'dupa';
  4. }
  5. else{
  6. echo 'dupadupa';
  7. }
  8. ?>
kossa
W każdym z plików musisz mieć na początku:

  1. <?php
  2. ?>

Łukasz
bangoo
Dodalem do 2.php session_start(); (w 1.php jest juz includowany). I nadal niedziała :/
misiek172
ehh wybierz sobie metode przekazywania session_id

a) cookie b ) post c ) get

i naapoczatku dokumenty:

session_id($_REQUEST['PHPSESSID'];
session_start();

$_REQUEST['PHPSESSID'] to przekazy adres session_id
bangoo
Dodalem i nic ;/ żadną metodą niedziała
strife
Cytat(bangoo @ 20.03.2007, 15:11:38 ) *
Dodalem do 2.php session_start(); (w 1.php jest juz includowany). I nadal niedziała :/


Jak to nie działa - musi. Stwórz sobie dwa przykładowe pliki, aby sprawdzić czy sesje w ogóle działają u Ciebie na serwerze.

pierwszy_plik.php
  1. <?php
  2. $_SESSION['test'] = 'testowa wiadomosc w sesji';
  3. ?>


drugi_plik.php
  1. <?php
  2. echo '<pre>';
  3. var_export( $_SESSION );
  4. echo '</pre>';
  5. ?>


Teraz wchodzisz do pierwszego pliku, który ustawia sesje. Po czym przełączasz się na drugi i sprawdzasz czy ta zmienna istnieje. Jeśli tak oznacza to, że nie dodałeś w każdym z plików session_start" title="Zobacz w manualu PHP" target="_manual tak jak pisał @kossa.

Dodam jeszcze od siebie post, w którym trochę o logowaniu już pisałem, może on Ci pomoże rozwiązać Twój problem.

Pozdrawiam.
bangoo
Sesje niby działają. Jeżeli ktoś mógłby przejrzec ten pierwszy plik od gory czy wszystko jest ok, bo chyba cos tam musi byc nie tak?

----
Juz odkryłem o co chodzi. W bazie danych hasło było ustawione na 15 znakow a bylo przechowywane w md5 (32 znaki) no i się porobiło winksmiley.jpg
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.