Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Logowanie - sesje, Problem z utrzymaniem sesji
greg.paw.90
post 13.04.2010, 16:31:32
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 8
Dołączył: 12.06.2009
Skąd: Wielkopolska

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


Witam drogich forumowiczów,
zwracam się do Was z kolejną prośbą (niestety nie mogę sobie sam poradzić), odnośnie pomocy w systemie logowania. Na początku przedstawię do czego jest mi to potrzebne, a następnie opisze mój problem.

W związku iż w tym roku moja klasa piszę maturkę i potem każdy idzie w "swoją stronę" chcemy zrobić taki mini portalik dla naszych potrzeb. Będzie tam m.in. galeria zdjęć, wspomnienia itp itd. Do portalu chcemy, aby dostęp mieli tylko wcześniej zarejestrowani-zalogowani użytkownicy (ok 50 bo jeszcze znajomi z innych klas).

Teraz problem.
Polega on na tym, iż nie wiem czemu ale sesje mi dość szybko gasną. Na innych stronach, które podobnie zrobiłem (najczęściej mini panel administracyjny oparty o logowanie na sesjach) wszystko działało, a teraz coś nie bardzo. Chciałbym uniknąć, tego aby np. podczas pisania jakiegoś artykułu naglę użytkownik zostanie wylogowany.

Mój kod:

index.php
  1. //początek strony
  2.  
  3.  
  4. function logged($a){
  5. $zapytanie="SELECT login FROM user WHERE id='$a' status='1'";
  6. $wynik=mysql_query($zapytanie);
  7. $user=mysql_num_rows($wynik);
  8. session_register('logged');
  9. if($user==1)
  10. {
  11. $_SESSION["logged"]=1;
  12. }
  13. else{
  14. $_SESSION['id']='';
  15. $_SESSION["logged"]=0;
  16. }
  17. }
  18.  
  19. $check_id = mysql_real_escape_string(strip_tags(trim($_SESSION['id'])));
  20. logged($check_id);
  21.  
  22. if(isset($_SESSION["logged"]) && $_SESSION["logged"]==1){
  23. // zalogowany
  24. }
  25. else{
  26. // brak dostępu
  27. }
  28.  
  29.  
  30. //koniec strony


login.php
  1. $_SESSION['id']='';
  2.  
  3. //sprawdzanie czy użytkownik istnieje itp
  4. $_SESSION['id']=$user['id'];
  5. Header("Location: index.php");


wyloguj.php
  1. $_SESSION['id']='';
  2. $_SESSION["logged"]=0;
  3. Header("Location: index.php");


To chyba wszystko. Macie dla mnie może jakieś wskazówki? Dziękuje za każdą pomoc.

Pozdrawiam!
Grzegorz

Ten post edytował greg.paw.90 13.04.2010, 16:51:50
Go to the top of the page
+Quote Post
athei
post 13.04.2010, 17:59:45
Post #2





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


usuń session_register
Spróbuj: login.php, wyloguj.php na samym początku session_start();

Ten post edytował athei 13.04.2010, 18:11:06
Go to the top of the page
+Quote Post
greg.paw.90
post 13.04.2010, 18:05:23
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 8
Dołączył: 12.06.2009
Skąd: Wielkopolska

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


mam w tych plikach session_start(); ponieważ wgrywam je do index.php za pomocą include(); - sorry zapomniałem dać to w kodzie w 1 poście,
podając mi funkcję session_register , możesz napisać co dokładnie masz na myśli?
używam już tej funkcji w ten sposób:
  1. session_register('logged');
  2. // dalszy kod...

chyba, że powinienem zrobić ?
  1. function logged($a){
  2. $zapytanie="SELECT login FROM user WHERE id='$a' status='1'";
  3. $wynik=mysql_query($zapytanie);
  4. $user=mysql_num_rows($wynik);
  5. if($user==1)
  6. {
  7. $logged=1;
  8. session_register('logged');
  9. }
  10. else{
  11. $_SESSION['id']='';
  12. $logged=0;
  13. session_register('logged');
  14. }
  15. }


-------------
ok usunąłem - dam znać czy zadziała (ostatnio działało ok 30min i wywalało), a mam pytanie czy ważne jest aby session_start(); było w login.php jeżeli jest od wczytywany do index.php w którym już jest session_start(); questionmark.gif

Ten post edytował greg.paw.90 13.04.2010, 18:18:09
Go to the top of the page
+Quote Post
athei
post 13.04.2010, 18:36:21
Post #4





Grupa: Zarejestrowani
Postów: 389
Pomógł: 141
Dołączył: 11.04.2009

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


Cytat
działało ok 30min i wywalało

Poczytaj i sprawdź, może coś pomoże http://www.allinterview.com/showanswers/67990.html
Go to the top of the page
+Quote Post
mortus
post 13.04.2010, 19:34:46
Post #5





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Jeśli w pliku index.php masz session_start(), a plik login.php jest includowany do index.php, to w login.php nie możesz mieć session_start(). Funkcja session_register() będzie usunięta w kolejnych wersjach php, dlatego nie należy jej używać.
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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 21:39