Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Sesja nie trzyma.
Rewil
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Szukam błędu bo dość już ja rozbudowałem, ale jest problem taki iż jej porostu nie trzyma. To znaczy logując się, wszystko wyświetla się tak jak powinno być ale po przejściu na inna stronę z ta sesja zachowuje się tak jakby się kasowała po drodze.

No to mamy przykładowo pierwszy plik:
  1. <?
  2. $_SESSION['auth_login'] = "Costam";
  3. $_SESSION['auth_password'] = "Blablabla";
  4.  
  5. echo $_SESSION['auth_login'];
  6. ?>

Wynikiem jest "Costam"

I teraz nic nie robiac przejdziemy na inna strone ktora ma samo echo $_SESSION['auth_login'];
To nie powinno wyswietlic to co sie zachowalo z poprzedniej? Bo mi nic nie wyświetla.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Matimor
post
Post #2





Grupa: Zarejestrowani
Postów: 287
Pomógł: 10
Dołączył: 22.08.2009

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


Temat: PHPSesje czy Cookies


--------------------
Go to the top of the page
+Quote Post
celbarowicz
post
Post #3





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


na następnej stronie też musi być session_start();
Go to the top of the page
+Quote Post
Rewil
post
Post #4





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Właśnie w tym problem że jest.
Go to the top of the page
+Quote Post
darko
post
Post #5





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat(Rewil @ 8.01.2010, 18:26:06 ) *
I teraz nic nie robiac przejdziemy na inna strone ktora ma samo echo $_SESSION['auth_login'];
To nie powinno wyswietlic to co sie zachowalo z poprzedniej? Bo mi nic nie wyświetla.


Cytat(Rewil)
Właśnie w tym problem że jest.


To jest czy nie ma? Pokaż kod.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
celbarowicz
post
Post #6





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


<?php
.
.
header('location: tu wpisz nazwę drugiego pliku .php');
?>
Go to the top of the page
+Quote Post
Rewil
post
Post #7





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


  1. <?
  2. include 'db.php';
  3.  
  4. $czas = 60 * 60 * 2;
  5.  
  6. if (!isset($_SESSION['PHPSESSID'])){
  7.  
  8. $login_check = $_POST['login'];
  9. $password_check = $_POST['password'];
  10.  
  11. $sql2 = mysql_query("SELECT * FROM users WHERE login = '$login_check'");
  12. while($rows2 = mysql_fetch_array($sql2)){
  13.  
  14. if($rows2['password'] == $password_check){
  15. $sql = "SELECT * FROM users WHERE login = '$login_check' AND password = '$password_check'";
  16. $result = mysql_query($sql);
  17.  
  18. if($rows2['active'] != "0"){
  19. header("Location: aktywuj_konto.php");
  20. exit();
  21. }
  22.  
  23. if (!$result) {
  24. echo "Rozwaliła się tutaj";
  25. }else{
  26. $row = mysql_fetch_array($result);
  27. $_SESSION['auth_login'] = $row['login'];
  28. $_SESSION['auth_password'] = $row['password'];
  29. $_SESSION['auth_email'] = $row['email'];
  30. $_SESSION['auth_ranga'] = $row['ranga'];
  31. $_SESSION['auth_name'] = $row['name'];
  32. $_SESSION['auth_avatar'] = $row['avatar'];
  33. $_SESSION['auth_id'] = $row['user_id'];
  34. $auth_login = $_SESSION['auth_login'];
  35. $auth_password = $_SESSION['auth_password'];
  36. $auth_email = $_SESSION['auth_email'];
  37. $auth_id = $_SESSION['auth_id'];
  38. $auth_name = $_SESSION['auth_name'];
  39. $auth_ranga = $_SESSION['auth_ranga'];
  40. $auth_avatar = $_SESSION['auth_avatar'];
  41. }
  42.  
  43. if (mysql_num_rows($result) == 0) {
  44. unset($_SESSION['auth_login']);
  45. unset($_SESSION['auth_password']);
  46. unset($_SESSION['auth_name']);
  47. unset($_SESSION['auth_ranga']);
  48. $_SESSION = array();
  49. }
  50.  
  51.  
  52. }else{
  53. unset($_SESSION['auth_login']);
  54. unset($_SESSION['auth_password']);
  55. unset($_SESSION['auth_name']);
  56. unset($_SESSION['auth_ranga']);
  57. $_SESSION = array();
  58. }
  59.  
  60. }
  61.  
  62. }else{
  63. }
  64.  
  65. ?>


includuje to do kazdego pliku. Tam mogą być niektóre kody nie potrzebne, ale to przez to że już kombinuje wszystkimi sposobami żeby to dzialało.

Ten post edytował Rewil 8.01.2010, 18:54:33
Go to the top of the page
+Quote Post
darko
post
Post #8





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Może w bazie nie ma danych, albo jest błąd zapytania i niszczysz sesję ( session_destroy(); )


// edit
no tak, niszczysz sesję, bo po przekierowaniu nie ma wartości dla
$login_check = $_POST['login'];
$password_check = $_POST['password'];

to też zapisz w sesji i potem nie wyciągaj za każdym razem danych z post tylko z session, masz błąd w logice

Ten post edytował darko 8.01.2010, 19:00:56


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. if (!isset($_SESSION['PHPSESSID'])){
  2.  

Od kiedy ciastka same z siebie migrują do sesji? Ten warunek nie ma prawa się wykonać. Dawaj session_start niezależnie od warunków.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Rewil
post
Post #10





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Nie wiem moze sie myle, ale:

  1. if (!isset($_SESSION['PHPSESSID'])){ // Jezeli sesj nie ma to:
  2.  
  3. $login_check = $_POST['login'];
  4. $password_check = $_POST['password'];
  5. plus kod odpowiadajacy za tworzenie sesji i dodanie roznych jej wartosci;
  6.  
  7. }else{ // Jeżeli jest
  8.  
  9. session_start(); // Podtrzymaj sesje.
  10. }


Dlatego chcialem sprawdzic czy same podstawy z pierwszego posta dzialaja. I nie dzialaja.
Dobrze rozumuje?

//Update Góra
Przerabiam kod na poprawny. Dzięki za info, później dam znać o rezultatach.

Ten post edytował Rewil 8.01.2010, 19:44:22
Go to the top of the page
+Quote Post
bastard13
post
Post #11





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


spróbuj uruchomić sesję na samym początku, a później ewentualnie po nie spełnieniu warunków ją zniszcz, bo z tego co pamiętam to session_start() powinno się umieszczać na początku pliku.


--------------------
Go to the top of the page
+Quote Post
Rewil
post
Post #12





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Napisałem nowy kod, działa mi on na localhoscie a na serwerze już nie (To samo nie trzyma na innych stronach, na localu wszystko dobrze chodzi):
  1. <?
  2. include 'db.php';
  3. $czas = 60 * 60 * 30;
  4. // Sprawdzanie czy w formularzu są poprawne dane - przed zalogowaniem
  5. $post_login = $_POST['login'];
  6. $post_password = $_POST['password'];
  7.  
  8. $sql = "SELECT * FROM users WHERE login = '$post_login' AND password = '$post_password'";
  9. $result = mysql_query($sql);
  10. $row = mysql_fetch_array($result);
  11.  
  12.  
  13. if(!isset($_POST['login']) && !isset($_POST['password'])){
  14. #echo "Puste";
  15. $error = true;
  16. }
  17.  
  18. if(!$row['id']){
  19. #echo "Login lub Hasło nie poprawny";
  20. $error = true;
  21. }
  22.  
  23. if(!$error){
  24. #echo "nie ma błędu";
  25. $_SESSION['auth_sesid'] = session_id();
  26. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  27. $_SESSION['auth_login'] = $row['login'];
  28. $_SESSION['auth_password'] = $row['password'];
  29. $_SESSION['auth_email'] = $row['email'];
  30. $_SESSION['auth_ranga'] = $row['ranga'];
  31. $_SESSION['auth_name'] = $row['name'];
  32. $_SESSION['auth_avatar'] = $row['avatar'];
  33. $_SESSION['auth_id'] = $row['user_id'];
  34. $_SESSION['auth_time'] = time();
  35. $auth_ip = $_SESSION['ip'];
  36. $auth_login = $_SESSION['auth_login'];
  37. $auth_password = $_SESSION['auth_password'];
  38. $auth_email = $_SESSION['auth_email'];
  39. $auth_id = $_SESSION['auth_id'];
  40. $auth_name = $_SESSION['auth_name'];
  41. $auth_ranga = $_SESSION['auth_ranga'];
  42. $auth_avatar = $_SESSION['auth_avatar'];
  43. $auth_time = $_SESSION['auth_time'];
  44. }
  45.  
  46. //Sprawdzanie w sesji czy są poprawne dane - po zalogowaniu.
  47.  
  48. $sql2 = "SELECT * FROM users WHERE login = '$auth_login' AND password = '$auth_password'";
  49. $result2 = mysql_query($sql2);
  50. $row2 = mysql_fetch_array($result);
  51.  
  52. if(!$row2['login']){
  53. #echo "Login lub Hasło nie poprawny - w sesji";
  54. $error2 = true;
  55. }
  56.  
  57.  
  58. ?>


Ten post edytował Rewil 9.01.2010, 15:33:01
Go to the top of the page
+Quote Post
erix
post
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Włącz raportowanie błędów i zobacz, czy coś wypluwa.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Rewil
post
Post #14





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


"Wypluło" i sobie poradziłem. Widać jeden serwer nie równy drugiemu smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 15:40