function parse_form_file($log_file_name) { $sqlite_db_name = preg_replace("/.log\$/", ".sqlite", $log_file_name); $db = new DBx(DB_DIR . $sqlite_db_name, "sqlite"); $sql = "DROP TABLE IF EXISTS actions"; $db->q($sql); $sql = "\nCREATE TABLE actions (\n unixtime INT NOT NULL,\n remote_addr CHAR(30),\n user_agent TEXT,\n id INT,\n url TEXT NOT NULL,\n referer TEXT,\n input_type TEXT,\n form_id TEXT,\n input_name TEXT,\n time_elapsed TEXT,\n key_ups INT\n)"; $db->q($sql); $sql = "\nCREATE INDEX IF NOT EXISTS \n actions_id\n ON actions(id)\n"; $db->q($sql); global $form_actions; $contents = file_get_contents(DB_DIR . $log_file_name); $lines = explode("\n", $contents); // begin a transaction $db->bt(); foreach ($lines as $line) { if (strlen($line) == 0) { continue; } $tic = parse_form_action($line); $db->set('actions', $tic); // todo add cleanup string /** / echo "<pre>"; print_r($tic); echo "</pre>"; /**/ } $db->c(); }
This file is great. */ require "./login_is.php"; require "../includes/db.inc.php"; $_SESSION['url'] = $_GET['url']; $_SESSION['db'] = $_GET['db']; $_SESSION['replay_motion'] = 0; $_SESSION['replay_summary'] = 1; if (!preg_match("/[0-9]{6}-site-freetale.sqlite/", $_GET['db'])) { echo "BAD DATABSE"; exit; } $db_dir = DB_DIR; $db = new DBx(DB_DIR . $_GET['db']); $sql = "\nSELECT\n id,\n scroll,\n time_elapsed\nFROM tics\n"; $db->q($sql); function last_scroll($scroll) { if ($scroll == "") { return False; } $bits = explode("|", $scroll); return $bits[count($bits) - 1]; } $motions = array(); $this_id = False; while ($row = $db->f()) { if ($this_id != $row['id']) { $this_id = $row['id']; $last_time = 0; $last_scroll = 0;