Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Logowanie i sesje
bangoo
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 14.03.2007

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował bangoo 20.03.2007, 14:59:56
Go to the top of the page
+Quote Post
kossa
post
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

Ostrzeżenie: (0%)
-----


W każdym z plików musisz mieć na początku:

  1. <?php
  2. ?>

Łukasz
Go to the top of the page
+Quote Post
bangoo
post
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 14.03.2007

Ostrzeżenie: (0%)
-----


Dodalem do 2.php session_start(); (w 1.php jest juz includowany). I nadal niedziała :/
Go to the top of the page
+Quote Post
misiek172
post
Post #4





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
bangoo
post
Post #5





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 14.03.2007

Ostrzeżenie: (0%)
-----


Dodalem i nic ;/ żadną metodą niedziała

Ten post edytował bangoo 20.03.2007, 15:32:38
Go to the top of the page
+Quote Post
strife
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
bangoo
post
Post #7





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 14.03.2007

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował bangoo 20.03.2007, 17:38:04
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.08.2025 - 14:21