Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] automatyczne wylogowanie po braku aktywności, po ok 20 min
rybosom
post
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 6.09.2004

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


mam prośbę o sprawdzenie mojego kodu, wszystko jest ok po za tym że jeśli nic nie robię przez ok 20 min to wylogowuje mnie i muszę się ponownie logować:
  1. <?php
  2. ob_start ("ob_gzhandler");
  3. $czassesji = (60*60*9);
  4. //error_reporting(0);
  5.  
  6. include './db_connect.php';
  7.  
  8. function logowanie() {
  9. if($_SESSION['logowanie'] == 'poprawne') {
  10.    $string  = '<br /><form action="' . getenv(REQUEST_URI) . '" method="post">';
  11.    $string .= '<input type="submit" class="button" name="wylogowanie" value="Wyloguj" />';
  12.    $string .= '</form>';
  13. } else {
  14.    $string = '<form action="' . getenv(REQUEST_URI) . '" method="post">';
  15.    if(isset($_SESSION['logowanie']))
  16.        $string .= $_SESSION['logowanie'];
  17.        $string .= '<table border="0">';
  18.        $string .= '<tr>';
  19.        $string .= '<td>Login:</td>';
  20.        $string .= '<td><input type="text" size="15" class="pole" name="login" /></td>';
  21.        $string .= '</tr>';
  22.        $string .= '<tr>';
  23.        $string .= '<td>Hasło:</td>';
  24.        $string .= '<td><input type="password" size="15" class="pole" name="haslo" /></td>';
  25.        $string .= '</tr>';
  26.        $string .= '<tr>';
  27.        $string .= '<td class="footer-login"> </td>';
  28.        $string .= '<td align="right"><input type="submit" name="logowanie" class="button" value="ok" /></td>';
  29.        $string .= '</tr>';
  30.        $string .= '</table>';
  31.        $string .= '</form>';
  32. }
  33.    return $string;
  34. }
  35.  
  36. // logowanie
  37.  
  38. if(isset($_POST['logowanie'])) {
  39.    $dane = @mysql_query('SELECT login, pass FROM usr WHERE login ="' . $_POST['login'] . '" AND pass = "' . $_POST['haslo'] . '"');
  40.  
  41.    if(mysql_num_rows($dane) == '1') {
  42.        $_SESSION['logowanie'] = 'poprawne';
  43.    } else {
  44.        $_SESSION['logowanie'] = '<h2>Błędny login lub hasło!</h2>';
  45.    }
  46.    //unset($_POST['logowanie']);
  47. }
  48.  
  49. // wylogowanie
  50.  
  51. if(isset($_POST['wylogowanie'])) {
  52.    setcookie('hash', '0',  time()-60*60*9);
  53.    unset($_SESSION['logowanie']);
  54. }
  55.  
  56.  
  57. if($_SESSION['logowanie'] == 'poprawne') {
  58. // jeśli zalogowany
  59.        if (!isset($_COOKIE[hash])) {
  60.  
  61.        $query = 'SELECT id, login, realname, email FROM usr WHERE login = "' . $_POST['login'] . '"';
  62.        $result = mysql_query($query);
  63.        $info = mysql_fetch_array($result);
  64.            $user_id = $info[0];
  65.            $login = $info[1];
  66.            $realname = $info[2];
  67.            $email = $info[3];
  68.        
  69.        $cookie = urlencode(serialize(array($user_id, $login, $realname, $email)));
  70.        setcookie("hash", base64_encode($cookie), time()+60*60*9);
  71.        }
  72.  
  73. switch ($_GET['str']) {
  74.    ...
  75.    ...
  76.    ...
  77. break;
  78. }
  79.  
  80. } else {
  81. // jeśli niezalogowany
  82.    echo '';
  83. }
  84.  
  85. echo logowanie();
  86.  
  87.  
  88. ?>
Go to the top of the page
+Quote Post
erix
post
Post #2





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




Zerknij do narzędzia zarządzania ciasteczkami w przeglądarce i sprawdź, jaką faktycznie mają ustawioną ważność.


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

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
rybosom
post
Post #3





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 6.09.2004

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


problem chyba od tego nie zalezy bo sytuacja ma miejsce dla wielu osob na roznych komputerach...
Go to the top of the page
+Quote Post
ayeo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 202
Pomógł: 117
Dołączył: 13.04.2007
Skąd: 127.0.0.1

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


Witam!

Pewnie Garbage Collector usuwa te sesje. Poczytaj o:

session.gc_probability, session.gc_divisor


--------------------
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: 20.08.2025 - 05:01