Предоставление доступа к странице ограниченный период времени на php
Category: PHP code examples
Доступ дается на 1 час по ip-адресу пользователя. В момент предоставления доступа в папке создается файл с ip-адресом в качестве имени, внутри файла – дата создания +1 час. При обращении к странице проверяется, наступило это время или еще нет. Если еще нет – доступ предоставляется, если уже наступило – переадресация на страницу ввода логина/пароля.
Код создающий файл с данными о том когда закончится доступ:
<?php $ip_filename = $_SERVER['REMOTE_ADDR']; $handle = fopen($ip_filename, 'w') or die('Cannot open file: '.$ip_filename); //implicitly creates file $fp = fopen($ip_filename, "w+"); ftruncate($fp, 0); $text_to_file = date('Y-m-d H:i:s', strtotime("+1 hours")); fwrite($fp, $text_to_file); fclose($fp); unset($fp);
Код, выполняющий поиск файла при попытке запроса страницы, и проверяющий давать доступ или нет:
<?php // echo $_SERVER['DOCUMENT_ROOT']; $my_file = '../dir/'.$_SERVER['REMOTE_ADDR']; $handle = fopen($my_file, 'r'); $data = ''; $data = fread($handle,filesize($my_file)); if ( (strtotime($data) < time()) or ( $data == '' )) { echo 'acces denied'; header('Location: http://site.com/login/', true, 302); die; }