$content[0], 'time' => $content[1] ); } function store_key($key, $user) { $file = "/tmp/$key"; $now = (string)time(); $content = "$user\n{$now}"; file_put_contents($file, $content, LOCK_EX); } function get_random($n) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = ''; for ($i = 0; $i < $n; $i++) { $index = rand(0, strlen($characters) - 1); $randomString .= $characters[$index]; } return $randomString; } function key_auth() { if (!isset($_SESSION['auth'])) { return FALSE; } $key = $_SESSION['auth']; $data = load_key($key); if ($data === FALSE) { return FALSE; } $user = $data['user']; $time = $data['time']; $now = time(); if ($time > $now || $now - $time > 60 * 60 * 24) { return FALSE; } store_key($key, $user); return $user; } function key_new($user) { $key = get_random(128); store_key($key, $user); $_SESSION['auth'] = $key; }