function register($email, $password, $passwordRe, $connection)
{
    //test if user exists
    include_once 'functions.php';
    $errors = check_validity($email, $password, $passwordRe, $connection);
    if (count($errors) > 0) {
        return $errors;
    }
    $k = 0;
    if ($stmt = mysqli_prepare($connection, "SELECT id FROM users WHERE email=?")) {
        $stmt->bind_param("s", $email);
        $stmt->execute();
        $stmt->bind_result($col1);
        while ($stmt->fetch()) {
            $k++;
        }
        $stmt->close();
        if ($k == 0) {
            include_once "functions.php";
            $generatedToken = generate_token();
            $sql = 'INSERT INTO users(email,password,date_registration,generated_token) VALUES(?,SHA(?),NOW(),?)';
            $stmt = mysqli_prepare($connection, $sql);
            $stmt->bind_param("sss", $email, $password, $generatedToken);
            $stmt->execute();
            if (mysqli_affected_rows($connection) == 0) {
                $errors[] = 'Unfortunately registration failed!';
                return $errors;
            }
            $stmt->close();
        } else {
            $errors[] = "E-mail already registered!";
            return $errors;
        }
    }
    return $errors;
}
예제 #2
0
function proc_attributes(&$a)
{
    global $aaa_config;
    global $hotspot_user;
    global $hotspot_device;
    global $hotspot_code;
    $login_type = $a['Meta-Login'];
    $interval = $a['Meta-Interval'];
    $interval_value = $a['Meta-Interval-Value'];
    if ($interval_value == '') {
        $interval_value = 1;
    }
    $t = null;
    switch ($login_type) {
        case 'device':
            $obj = $hotspot_device;
            $t = db_table('devices');
            if (!check_validity($t, $obj, $a)) {
                return false;
            }
            $sum = get_device_summary($obj);
            break;
        case 'user':
            $obj = $hotspot_user;
            $t = db_table('users');
            if (!check_validity($t, $obj, $a)) {
                return false;
            }
            $sum = get_user_summary($obj);
            if ($obj['id'] != $hotspot_device['owner_id']) {
                $sql = 'UPDATE ' . db_table('devices') . ' SET owner_id = ' . $obj['id'] . ' WHERE id = ' . $hotspot_device['id'];
                db_query($sql, false);
            }
            break;
        case 'code':
            $t = db_table('codes');
            $obj = $hotspot_code;
            if (!check_validity($t, $obj, $a)) {
                return false;
            }
            $sum = get_code_summary($obj);
            if ($obj['device_id'] != $hotspot_device['id']) {
                $sql = 'UPDATE ' . $t . ' SET device_id = ' . $hotspot_device['id'] . ' WHERE id = ' . $obj['id'];
                db_query($sql, false);
            }
            break;
        default:
            return false;
    }
    switch ($interval) {
        case 'minute':
        case 'hour':
        case 'day':
        case 'month':
        case 'year':
            if ($obj['valid_until'] == '') {
                db_query('UPDATE ' . $t . ' SET valid_until = DATE_ADD(valid_from, INTERVAL ' . $interval_value . ' ' . $interval . ')', false);
            }
            break;
        default:
            break;
    }
    $swap = $aaa_config['using_swapoctets'];
    # Down
    $n = 'CoovaChilli-Max-' . ($swap ? 'Out' : 'In') . 'put-Octets';
    $v = $a[$n];
    if (isset($v) && $v > 0 && $sum['bytes_down'] > 0) {
        $s = $v - $sum['bytes_down'];
        if ($s <= 0) {
            set_reply_message($a, 'Download data limit reached', false);
            return false;
        }
        $a[$n] = $s;
    }
    # Up
    $n = 'CoovaChilli-Max-' . ($swap ? 'In' : 'Out') . 'put-Octets';
    $v = $a[$n];
    if (isset($v) && $v > 0 && $sum['bytes_up'] > 0) {
        $s = $v - $sum['bytes_up'];
        if ($s <= 0) {
            set_reply_message($a, 'Upload data limit reached', false);
            return false;
        }
        $a[$n] = $s;
    }
    # Total
    $n = 'CoovaChilli-Max-Total-Octets';
    $v = $a[$n];
    if (isset($v) && $v > 0 && ($sum['bytes_up'] > 0 || $sum['bytes_down'] > 0)) {
        $s = $v;
        if ($sum['bytes_up'] > 0) {
            $s -= $sum['bytes_up'];
        }
        if ($sum['bytes_down'] > 0) {
            $s -= $sum['bytes_down'];
        }
        if ($s <= 0) {
            set_reply_message($a, 'Total data limit reached', false);
            return false;
        }
        $a[$n] = $s;
    }
    $ses_time = $a['Acct-Session-Time'];
    if (isset($ses_time) && $ses_time > 0) {
        $ses_time -= $sum['seconds'];
        if ($ses_time <= 0) {
            set_reply_message($a, 'Time expired', false);
            return false;
        }
        set_session_timeout($a, $ses_time, true);
        unset($a['Acct-Session-Time']);
    }
    return true;
}