Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z autologowaniem
Forum PHP.pl > Forum > PHP
-=Peter=-
Witam, mam następujący problem: piszę cms'a do swojej stronki, zrobilem już dużą jego część, ale... jest mały problem z autologowaniem na stronie. Logowanie jest oparte na klasie która jest opisana na stronie php.pl. W formularzu do logowania jest okienko "check" służące do tego aby po ponownym wejscu na strone nastąpowało autologowanie. Po jego zaznaczeniu są wysyłane 2 cookie z nazwą uzytkownika i z zakodowanym hasłem, czas wygaśniecia cookie ustawiłem na 20 dni. Na stronie zamieściłem warunek:
  1. <?php
  2.  
  3. if((isset($_COOKIE[name]) && !$_SESSION[name])){
  4. //wykonuj autologowanie
  5. }
  6.  
  7. ?>

Chyba jest on oczywisty, skrypt powinien przechodzic do autologowania, i moze przechodzi, nie wiem, bo strona gdy zaloguję się tak aby poźniej mnie zapamiętywało, a następnie wyłącze i włącze zpowrotem przeglądarkę i wejdę na tą stronę to ładuje mi sie ona "w nieskonczoność"... Nie jestem pewny, ale to przez ciasteczka tak sie dzieje, gdyz koledze w firefoxie wyskakuje wtedy błąd ciasteczek...

Dodam ze logowanie jest oparte na tabeli bazy danych z forum IPB2, moze to w tym lezy wina, chociaz wątpię.

Oto link do strony na której jest to logowanie (wersja testowa strony tongue.gif): http://tekken.gry-online.pl/tp2/
login: demo
hasło: demo

(jesli sie zaznaczy opcje "autologin" to po wyłączeniu i włączeniu przeglądarki aby weszło na stronę trzeba usunąć cookie...).

Jesli ktoś zna rozwiązanie tego problemu, bądź inny sposób na opcję autologowania to proszę o odpowiedź tongue.gif Z góry dziękuję.
TomASS
u mnie działa Twoje logowanie poprawnie. Loguje się, zaznaczam opcję 'autologowanie' i zamykam przeglądarkę. Wchodzę i dalej jestem zalogowany.

Może spróbuj:

  1. <?php
  2.  
  3. if((isset($_COOKIE[name])){
  4. //wykonuj autologowanie
  5. }
  6.  
  7. ?>
zbig13
1. Wydaję mi się, że te warunki w if'ie są źle ujęte w nawiasy.
2. Nie ma 'ciapków' (smile.gif) w nazwach cookie.
Ogólnie powinno chyba być tak:

  1. <?php
  2.  
  3. if ( (isset ($_COOKIE['name']) ) && ( !$_SESSION['name'] )){
  4.  
  5. //wykonuj autologowanie
  6.  
  7. }
  8.  
  9. ?>
TomASS
Tak, tak z tymi ciapkami (') na pewno działąć będzie smile.gif
-=Peter=-
Chyba nie o to chodzi, nie warunek jest żle sklejony tongue.gif Podam funkcje autologowania (jest ta funkcja w klasie "Site"):
  1. <?php
  2.  
  3.     function autolog($u, $p){
  4.         $query = "SELECT m.id, m.name, m.posts, m.email, m.mgroup FROM ipb_members AS m, ipb_
    members_converge AS p WHERE m.name = '$u' AND p.converge_pass_hash = '$p' AND p.converge_id = m.id"
    ;
  5.         $result = mysql_query($query);
  6.         $row = mysql_fetch_array($result, MYSQL_ASSOC);
  7.  
  8.         if($row && $row_m){
  9.             //session_id($sid);
  10.             //session_start();
  11.             $sessid = session_id();
  12.             $query_a = "UPDATE pcms_sessions SET user_id = '$row[id]', username = '$row[username]' WHERE session_id = '$sessid'";
  13.             $result_a = mysql_query($query_a);
  14.  
  15.             $uid = $row['id'];
  16.  
  17.             $query_qroup = "SELECT g_title, prefix, suffix FROM ipb_groups WHERE g_id = '$row[mgroup]'";
  18.             $result_group = mysql_query($query_qroup);
  19.             $row_group = mysql_fetch_array($result_group, MYSQL_ASSOC);
  20.  
  21.             $_SESSION[g_title] = $row_group[g_title];
  22.             $_SESSION[id] = $row[id];
  23.             $_SESSION[name] = $row[name];
  24.             $_SESSION[posts] = $row[posts];
  25.  
  26.             $link = 'index.php';
  27.             $this->_header($link);
  28.             exit();
  29.         }else{
  30.             $link = 'index.php?page=logout';
  31.             $this->_header($link);
  32.             exit();
  33.         }
  34.     }
  35.  
  36. ?>

Jak wczesniej wspominałem logowaniejest oparte na tabeli _ipb_members z forum IPB2.
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.