Ejemplo n.º 1
0
        set_time_limit($max_execution_time);
    }
}
$rule = Database::prepare("SELECT SQL_CACHE rule FROM `##site_access_rule`" . " WHERE IFNULL(INET_ATON(?), 0) BETWEEN ip_address_start AND ip_address_end" . " AND ? LIKE user_agent_pattern" . " ORDER BY ip_address_end LIMIT 1")->execute(array(WT_CLIENT_IP, Filter::server('HTTP_USER_AGENT', null, '')))->fetchOne();
switch ($rule) {
    case 'allow':
        $SEARCH_SPIDER = false;
        break;
    case 'deny':
        http_response_code(403);
        exit;
    case 'robot':
    case 'unknown':
        // Search engines don’t send cookies, and so create a new session with every visit.
        // Make sure they always use the same one
        Session::setId('search-engine-' . str_replace('.', '-', WT_CLIENT_IP));
        $SEARCH_SPIDER = true;
        break;
    case '':
        Database::prepare("INSERT INTO `##site_access_rule` (ip_address_start, ip_address_end, user_agent_pattern, comment) VALUES (IFNULL(INET_ATON(?), 0), IFNULL(INET_ATON(?), 4294967295), ?, '')")->execute(array(WT_CLIENT_IP, WT_CLIENT_IP, Filter::server('HTTP_USER_AGENT', null, '')));
        $SEARCH_SPIDER = true;
        break;
}
// Store our session data in the database.
session_set_save_handler(function () {
    return true;
}, function () {
    return true;
}, function ($id) {
    return Database::prepare("SELECT session_data FROM `##session` WHERE session_id=?")->execute(array($id))->fetchOne();
}, function ($id, $data) {