2013-06-02 3 views
0

У меня есть страница, которая освежает каждые 10 секунд. Когда страница освежает, удаляет пользователя из страницы и отправляет его на auth.php. СОсвежающий выход из системы пользователя со страницы

if (!isset($_SERVER['HTTP_REFERER'])) 
{ 
header("location: auth.php"); 
exit; 
} 

мне нужна эта функция, чтобы предотвратить прямой доступ из URL. Но проблема в том, что пользователь вышел из системы после обновления, как сделать эту функцию ложной при обновлении, а также предотвратить прямой доступ с URL-адреса.

Мой код как поток.

<html> 
<body> 
<?php 


$page = $_SERVER['PHP_SELF']; 
$sec = 10; 
header("Refresh: $sec; url=$page"); 



if (!isset($_SERVER['HTTP_REFERER'])) 
{ 

header("location: auth.php"); 
exit; 
} 
?> 

</body> 
</html> 
+0

Вы должны использовать свои заголовки перед любым выходом HTML. В противном случае это просто не сработает. – vikingmaster

+0

ОК, я сделаю это. Что мне нужно, чтобы предотвратить выход пользователя из системы после обновления. – hadi

+0

Документация на PHP гласит: «Адрес страницы (если есть), которая ссылалась на пользовательский агент на текущую страницу.Это устанавливается пользовательским агентом. Не все пользовательские агенты установят это, а некоторые предоставляют возможность изменять HTTP_REFERER как функция. Короче говоря, на самом деле нельзя доверять ». - http://php.net/manual/en/reserved.variables.server.php –

ответ

0

Использования

if(!isset($_GET['logout'])) 
{ 
    if(!isset($_SERVER['HTTP_REFERER'])) 
    { 
     header("location: auth.php"); 
     exit; 
    } 
    else 
    { 
    $page = $_SERVER['PHP_SELF']; 
    $sec = 10; 
    header("Refresh: $sec; url=$page"); 
    } 
} 
else 
{ 
    print "/*Error in refreshing*/"; 
} 

Надеется, что это поможет!

+0

Прежде всего, спасибо за ваш код. ваш код работает, пользователь не вышел из системы. освежающий штраф. но когда я получаю доступ к странице из URL-адреса, открывается со мной. thats проблема одна проблема решена вторая нет. !!! когда я получаю доступ из url, который, как я предполагаю, перенаправляется на auth.php, но этого не происходит. – hadi

+0

@hadi, тогда вы можете вставить выражение «else if» в инструкцию «if». –

+0

@hadi Я отредактировал свой ответ. –

Смежные вопросы