Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Срочно Таймаут сессии аунтификации


Автор: ruboy 7.4.2009, 08:19
Народ помогите Срочно
Есть скрипт аунтификации юзеров для админпанели. Пытаюсь сделать так чтоб по истечении 20 минут бездействия сессия уничтожалась бы и юзера выбрасывало бы заранее ввести логин и пароль
Вот скрипт Но что там не срабатывает 
    
Код

<?
$warn = "Введите логин и пароль!";
if(isset($_POST['auth_name'])) {
    $name = mysql_real_escape_string($_POST['auth_name']);
    $pass = mysql_real_escape_string($_POST['auth_pass']);
  
    $res = mysql_query("SELECT * FROM admins WHERE login='$name' AND pass='".md5($pass)."'") or die("Ошибка запроса!");
  
    if($row = mysql_fetch_array($res)) {
    
       session_cache_limiter('public');
       session_cache_expire(20);
       session_start();
       $_SESSION['user_id'] = $row['id'];
       $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
    
    }
    
    if(preg_match("/[^\s]+/", $name) && preg_match("/[^\s]+/", $pass)){ $warn = "Неверный логин или пароль!"; }
    else{ $warn = "Поле логин или пароль пусты!"; }
    
}
if(isset($_GET['exit']) AND $_GET['exit'] == 1) {
  session_start();
  session_destroy();
  header("Location: http://".$_SERVER['HTTP_HOST']."/eco-absheron/admin");
  exit;
}
session_start();
if(isset($_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) return; 
else {?>
<html>
<head>
<title>Admin panel</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="background-color:#D6FAC4;">
<form name="forma" action="" method="post">
  <table align="center" cellpadding="0" cellspacing="0" style="margin-top:100px;" width="25%" bgcolor="7FC55C">
    <tr> 
      <td colspan="2" align="center" height="60"><b style="color:#CCFFCC;"> 
        <b><? echo $warn; ?></b>
        </td>
    </tr>
    <tr> 
      <td align="right"><b style="color:#FFFFFF;">Login:</b></td>
      <td align="left"><input type="text" name="auth_name" style="margin-left:10px; width:150px;"></td>
    </tr>
    <tr> 
      <td height="20" colspan="2"></td>
    </tr>
    <tr> 
      <td align="right"><b style="color:#FFFFFF;">Pass:</b></td>
      <td align="left"><input type="password" name="auth_pass" style="margin-left:10px; width:150px;"></td>
    </tr>
    <tr> 
      <td colspan="2" height="20"></td>
    </tr>
    <tr> 
      <td colspan="2" height="20" align="center"><input type="submit" name="go" value="Вход" style="margin-bottom:20px; margin-left:135px;"></td>
    </tr>
  </table>
</form>
</body>
</html>
<?
}
exit;
?>




    else{ $warn = "Поле логин или пароль пусты!"; }
    
}
if(isset($_GET['exit']) AND $_GET['exit'] == 1) {
  session_start();
  session_destroy();
  header("Location: http://".$_SERVER['HTTP_HOST']."/eco-absheron/admin");
  exit;
}
session_start();
if(isset($_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) return; 
else {?>
<html>
<head>
<title>Admin panel</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="background-color:#D6FAC4;">
<form name="forma" action="" method="post">
  <table align="center" cellpadding="0" cellspacing="0" style="margin-top:100px;" width="25%" 

bgcolor="7FC55C">
    <tr> 
      <td colspan="2" align="center" height="60"><b style="color:#CCFFCC;"> 
        <b><? echo $warn; ?></b>
        </td>
    </tr>
    <tr> 
      <td align="right"><b style="color:#FFFFFF;">Login:</b></td>
      <td align="left"><input type="text" name="auth_name" style="margin-left:10px; 

width:150px;"></td>
    </tr>
    <tr> 
      <td height="20" colspan="2"></td>
    </tr>
    <tr> 
      <td align="right"><b style="color:#FFFFFF;">Pass:</b></td>
      <td align="left"><input type="password" name="auth_pass" style="margin-left:10px; 

width:150px;"></td>
    </tr>
    <tr> 
      <td colspan="2" height="20"></td>
    </tr>
    <tr> 
      <td colspan="2" height="20" align="center"><input type="submit" name="go" value="Вход" 

style="margin-bottom:20px; margin-left:135px;"></td>
    </tr>
  </table>
</form>
</body>
</html>
<?
}
exit;
?>



 ! 
MoLeX


Модератор: 
1. Дубляж тем
2. Для оформления кода используй кнопку КОД
3. В разделе РНР: Профи рассматриваются сложные вопросы
4. Читай правила форума пункт 1, если тему не исправишь в соответсвие с правилами - удалю


Автор: skyboy 7.4.2009, 09:17
Цитата(ruboy @  7.4.2009,  07:19 Найти цитируемый пост)
Вот скрипт Но что там не срабатывает 

ну, ты cookie полученные смотрел? какой у них expiration date? совпадает с 20-минутным интервалом?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)