Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Logowanie - sesje
Forum PHP.pl > Forum > Przedszkole
greg.paw.90
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
athei
usuń session_register
Spróbuj: login.php, wyloguj.php na samym początku session_start();
greg.paw.90
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
athei
Cytat
działało ok 30min i wywalało

Poczytaj i sprawdź, może coś pomoże http://www.allinterview.com/showanswers/67990.html
mortus
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ć.
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.