public function lookupUser($inData)
 {
     if (!isset($inData['id'])) {
         return;
     }
     $query = "SELECT *\n\t\t\t\t  FROM user_subscriptions\n\t\t\t\t  left join users on users.id = user_subscriptions.user_id\r\n\t\t\t\t  WHERE user_subscriptions.chargebee_id = ?";
     $stmt = $this->sql->link->prepare($query);
     if (!$stmt) {
         die('Invalid query: ' . $this->sql->link->error);
     } else {
         $stmt->bind_param('s', $inData['id']);
         $resultFromExec = $stmt->execute();
         $stmt->store_result();
         stmt_bind_assoc($stmt, $returnResults);
         // loop through all result rows
         while ($stmt->fetch()) {
             foreach ($returnResults as $key => $value) {
                 $row_tmb[$key] = addslashes($value);
             }
             $data = $row_tmb;
         }
     }
     $this->outData['data'] = $data;
 }
Esempio n. 2
0
<h1>Statistics</h1>
<p>
<?php 
require_once 'db.php';
require_once 'common.php';
$stats = array();
$sql = 'SELECT * FROM stats';
$stmt = $mysql->stmt_init();
$stmt->prepare($sql);
$data = array();
stmt_bind_assoc($stmt, $data);
$stmt->execute();
while ($stmt->fetch()) {
    $stats[$data['pname']] = $data['pvalue'];
}
$stmt->close();
$mysql->close();
echo "Total nets: {$stats['nets']}<br/>\n";
echo "Cracked nets: {$stats['cracked']}<br/>\n";
if ((int) $stats['nets'] > 0) {
    $srate = round((int) $stats['cracked'] / (int) $stats['nets'] * 100, 2);
    echo "Success rate: {$srate} %<br/>\n";
}
echo "Last day getworks: {$stats['24getwork']}<br/>\n";
$perf = convert_num($stats['24psk'] / (60 * 60 * 24));
echo "Last day performance: {$perf}/s<br/>\n";
echo "Last day submissions: {$stats['24sub']}<br/>\n";
echo "Current round ends in: ";
if ((int) $stats['24psk'] > 0) {
    echo convert_sec(round(((int) $stats['words'] - (int) $stats['triedwords']) / ((int) $stats['24psk'] / (60 * 60 * 24))));
} else {
Esempio n. 3
0
 function get_table()
 {
     if (empty($this->lookup_value_col)) {
         $this->set_key_val_cols();
     }
     /*	if ($this->has_disabled_column)
     		{
     			$wherenotdisabled = " where disabled <> 1";
     		}*/
     //	$sql = sprintf("select * from %s %s order by %s",$this->tbl_name,$wherenotdisabled,$this->lookup_value_col);
     //	$result = mysql_query($sql);
     $table_hash = array();
     //	while ($ar = mysql_fetch_array($result))
     //	{
     //LookupTable tables always have id as first field and and name as second field
     //		$table_hash[$ar[0]] = array($ar[1],"disabled"=>$ar['disabled']);
     //	} //echo $this->lookup_value_col." - ".count($table_hash)."<br>";
     $db = $_SESSION['mysqli_obj'];
     if (empty($this->lookup_ids)) {
         $sql = sprintf("select * from %s order by %s", $this->tbl_name, $this->lookup_value_col);
         $stmt = $db->prepare($sql);
     } else {
         $values = $this->lookup_ids;
         $sql = sprintf("SELECT * FROM %s WHERE {$this->prim_key_col} IN (%s) order by %s", $this->tbl_name, implode(', ', array_fill(0, count($values), '?')), $this->lookup_value_col);
         // echo $sql;
         $stmt = $db->prepare($sql);
         array_unshift($values, implode('', array_fill(0, count($values), 'i')));
         @call_user_func_array(array($stmt, 'bind_param'), $values);
         //need @ cuz bind_param gives warnings if $values are references
     }
     $stmt->execute();
     $row = array();
     stmt_bind_assoc($stmt, $row);
     //commonfunc.php
     // loop through all result rows
     while ($stmt->fetch()) {
         $table_hash[$row[$this->prim_key_col]] = array($row[$this->lookup_value_col], "disabled" => $row['disabled']);
         //print_r($row);
     }
     /* close statement */
     $stmt->close();
     return $table_hash;
 }
function generate_common($graphType, $beginningQuery, $endQuery, $label1Column, $label2Column, $valueColumn)
{
    global $rType, $sDate, $eDate, $days, $sTime, $eTime;
    $link = retrieve_mysqli();
    $query = $beginningQuery . " WHERE ";
    $query .= generate_conditional() . $endQuery;
    if ($stmt = mysqli_prepare($link, $query)) {
        mysqli_stmt_bind_param($stmt, "ssss", $sDate, $eDate, $sTime, $eTime);
        mysqli_stmt_execute($stmt);
        $stmt->store_result();
        $resultrow = array();
        stmt_bind_assoc($stmt, $resultrow);
        $numRows = mysqli_stmt_num_rows($stmt);
        if ($numRows != 0) {
            $isEmployee = FALSE;
            if (isset($label2Column)) {
                $isEmployee = TRUE;
            }
            $labels = array();
            $values = array();
            while (mysqli_stmt_fetch($stmt)) {
                $label1 = NULL;
                $label2 = NULL;
                // label2 is lastname if isEmployee, otherwise NULL
                $value = NULL;
                foreach ($resultrow as $key => $data) {
                    if ($label1Column == $key) {
                        $label1 = $data;
                    } else {
                        if ($valueColumn == $key) {
                            $value = $data;
                        } else {
                            if ($isEmployee) {
                                if ($label2Column == $key) {
                                    $label2 = $data;
                                }
                            } else {
                                if (isset($label1) && isset($value)) {
                                    break;
                                }
                            }
                        }
                    }
                    if (isset($label1) && isset($value) && isset($label2)) {
                        break;
                    }
                }
                $label = $label1;
                if ($isEmployee) {
                    $label .= ' ' . $label2;
                }
                array_push($labels, $label);
                array_push($values, $value);
            }
            mysqli_stmt_close($stmt);
            echo json_encode(array('graphType' => $graphType, 'labels' => $labels, 'values' => $values));
            exit;
        }
        echo '0 results returned.';
        exit;
    }
}
Esempio n. 5
0
 private function processChargeBeeData($inData)
 {
     //echo "Processing $inData";
     $inData = json_decode($inData, 1);
     $sqlData = array();
     $varData = array();
     if ($inData === null) {
         echo "Invalid Data provided.\n";
         return "Invalid data!";
     }
     echo "Processing : ";
     print_r($inData);
     foreach ($inData['content'] as $key => $value) {
         /*	"subscription": {
         			"id": "HwqE2xeNnwOeYF44",
         			"plan_id": "enterprise",
         			"plan_quantity": 1,
         			"status": "in_trial",
         			"trial_start": 1352158863,
         			"trial_end": 1353454863,
         			"created_at": 1352158863,
         			"due_invoices_count": 0,
         			"object": "subscription"
         		},
         		"customer": {
         			"id": "HwqE2xeNnwOeYF44",
         			"first_name": "Leon",
         			"last_name": "Test",
         			"email": "*****@*****.**",
         			"created_at": 1352158863,
         			"object": "customer",
         			"card_status": "valid"
         		},
         		"card": {
         			"customer_id": "HwqE2xeNnwOeYF44",
         			"status": "valid",
         			"gateway": "chargebee",
         			"first_name": "Leon",
         			"last_name": "Testington",
         			"iin": "411111",
         			"last4": "1111",
         			"card_type": "visa",
         			"expiry_month": 2,
         			"expiry_year": 2020,
         			"billing_addr1": "123 Fake Street",
         			"billing_city": "Fake suburb",
         			"billing_state": "QLD",
         			"billing_country": "AU",
         			"billing_zip": "1234",
         			"object": "card",
         			"masked_number": "411111******1111"
         		},
         		*/
         switch ($key) {
             case "customer":
                 $allowed = array("customer_first_name", "customer_last_name", "customer_email", "customer_created_at");
                 foreach ($value as $customerKey => $customerData) {
                     if (in_array("customer_" . $customerKey, $allowed)) {
                         $sqlData[] = "customer_" . $customerKey . " = ?";
                         $varData[] = $customerData;
                     }
                 }
                 //Flag the curl request as processed/deleted.
                 $query = "UPDATE user_subscriptions \n\t\t\t\t\t\t\t\t  SET " . implode(",", $sqlData) . "\t\n\t\t\t\t\t\t\t\t  WHERE chargebee_id = ?";
                 $stmt = $this->sql->link->prepare($query);
                 for ($c = 0; $c < sizeof($varData); $c++) {
                     $stmt->mbind_param('s', $varData[$c]);
                 }
                 //Bind the document id, document page num and user id.
                 $stmt->mbind_param('s', $value['id']);
                 $stmt->execute();
                 break;
             case "card":
                 $allowed = array("card_status", "card_first_name", "card_last_name", "card_card_type", "card_expiry_month", "card_expiry_year", "card_billing_addr1", "card_billing_addr2", "card_billing_city", "card_billing_state", "card_billing_country", "card_billing_zip", "card_masked_number");
                 foreach ($value as $customerKey => $customerData) {
                     if (in_array("card_" . $customerKey, $allowed)) {
                         $sqlData[] = "card_" . $customerKey . " = ?";
                         $varData[] = $customerData;
                     }
                 }
                 //Flag the curl request as processed/deleted.
                 $query = "UPDATE user_subscriptions \n\t\t\t\t\t\t\t\t  SET " . implode(",", $sqlData) . "\t\n\t\t\t\t\t\t\t\t  WHERE chargebee_id = ?";
                 $stmt = $this->sql->link->prepare($query);
                 for ($c = 0; $c < sizeof($varData); $c++) {
                     $stmt->mbind_param('s', $varData[$c]);
                 }
                 //Bind the document id, document page num and user id.
                 $stmt->mbind_param('s', $value['customer_id']);
                 $stmt->execute();
                 break;
             case "subscription":
                 $allowed = array("subscription_plan_id", "subscription_plan_quantity", "subscription_status", "subscription_trial_start", "subscription_trial_end", "subscription_created_at", "subscription_due_invoices_count", "subscription_activated_at", "subscription_current_term_start", "subscription_current_term_end");
                 foreach ($value as $customerKey => $customerData) {
                     if (in_array("subscription_" . $customerKey, $allowed)) {
                         $sqlData[] = "subscription_" . $customerKey . " = ?";
                         $varData[] = $customerData;
                     }
                 }
                 //Flag the curl request as processed/deleted.
                 $query = "UPDATE user_subscriptions \n\t\t\t\t\t\t\t\t  SET " . implode(",", $sqlData) . "\t\n\t\t\t\t\t\t\t\t  WHERE chargebee_id = ?";
                 $stmt = $this->sql->link->prepare($query);
                 for ($c = 0; $c < sizeof($varData); $c++) {
                     $stmt->mbind_param('s', $varData[$c]);
                 }
                 //Bind the document id, document page num and user id.
                 $stmt->mbind_param('s', $value['id']);
                 $stmt->execute();
                 break;
             default:
                 break;
         }
     }
     require '../php/chargebee/ChargeBee.php';
     ChargeBee_Environment::configure("rocketmailmerge", "1opwNtcdAXu19XWee9cdCFe6E3FfYcCvUF");
     switch ($inData['event_type']) {
         //Reactivate free trial accounts when the free trial runs out and is killed by chargebee
         case "subscription_canceled_no_card":
             $returnResults = array();
             $subscriptionID = $inData['content']['subscription']['id'];
             $subscriptionPlanID = $inData['content']['subscription']['plan_id'];
             $cardStatus = $inData['content']['customer']['card_status'];
             $trialEnd = $inData['content']['subscription']['trial_end'];
             $currentTermStart = $inData['content']['subscription']['current_term_start'];
             //The free trial has expired. Reactivate their account.
             if ($subscriptionPlanID == "free" && $cardStatus == "no_card") {
                 $result = ChargeBee_Subscription::reactivate($subscriptionID);
                 //Locate the user's page usage.
                 $query = "SELECT user_subscriptions.chargebee_id, user_subscriptions.user_id, user_statistics.billing_cycle_pages, subscription_plans.included_pages\n\t\t\t\t\t\t\t\tFROM user_subscriptions\n\t\t\t\t\t\t\t\tLEFT JOIN user_statistics ON user_subscriptions.user_id = user_statistics.user_id\n\t\t\t\t\t\t\t\tLEFT JOIN subscription_plans ON user_subscriptions.subscription_plan_id = subscription_plans.plan_name\n\t\t\t\t\t\t\t\tWHERE user_subscriptions.chargebee_id =  ?";
                 $stmt = $this->sql->link->prepare($query);
                 if (!$stmt) {
                     die('Invalid query: ' . $this->sql->link->error);
                 } else {
                     $stmt->bind_param('s', $subscriptionID);
                     $resultFromExec = $stmt->execute();
                     $stmt->store_result();
                     stmt_bind_assoc($stmt, $returnResults);
                     // loop through all result rows
                     while ($stmt->fetch()) {
                         foreach ($returnResults as $key => $value) {
                             $row_tmb[$key] = $value;
                         }
                         $data = $row_tmb;
                     }
                 }
                 $userID = $data['user_id'];
                 //Reset the user statistics back to 0.
                 $query = "UPDATE user_statistics SET billing_cycle_logins = 0, billing_cycle_documents = 0, billing_cycle_pages = 0\n\t\t\t\t\t\t\t  WHERE user_id = ?";
                 $stmt = $this->sql->link->prepare($query);
                 if (!$stmt) {
                     die('Invalid query: ' . $this->sql->link->error);
                 } else {
                     $stmt->bind_param('i', $userID);
                     $resultFromExec = $stmt->execute();
                 }
             }
             break;
         case "invoice_created":
             echo "Invoice Created!";
             $returnResults = array();
             $invoiceID = $inData['content']['invoice']['id'];
             $subscriptionID = $inData['content']['invoice']['subscription_id'];
             $result = ChargeBee_Subscription::retrieve($subscriptionID);
             $subscription = $result->subscription();
             $addonName = $subscription->__get('planId') . "_extra_pages";
             //build out of the name of their plan + '_extra_pages'
             //Locate the user's page usage.
             $query = "SELECT user_subscriptions.chargebee_id, user_subscriptions.user_id, user_statistics.billing_cycle_pages, subscription_plans.included_pages\n\t\t\t\t\t\t\tFROM user_subscriptions\n\t\t\t\t\t\t\tLEFT JOIN user_statistics ON user_subscriptions.user_id = user_statistics.user_id\n\t\t\t\t\t\t\tLEFT JOIN subscription_plans ON user_subscriptions.subscription_plan_id = subscription_plans.plan_name\n\t\t\t\t\t\t\tWHERE user_subscriptions.chargebee_id =  ?";
             $stmt = $this->sql->link->prepare($query);
             if (!$stmt) {
                 die('Invalid query: ' . $this->sql->link->error);
             } else {
                 $stmt->bind_param('s', $subscriptionID);
                 $resultFromExec = $stmt->execute();
                 $stmt->store_result();
                 stmt_bind_assoc($stmt, $returnResults);
                 // loop through all result rows
                 while ($stmt->fetch()) {
                     foreach ($returnResults as $key => $value) {
                         $row_tmb[$key] = $value;
                     }
                     $data = $row_tmb;
                 }
             }
             $userID = $data['user_id'];
             //Calculate how many pages over their included subscription pages they've used.
             $billingCyclePages = $data['billing_cycle_pages'];
             if (!is_numeric($data['billing_cycle_pages'])) {
                 $billingCyclePages = 0;
             }
             $billingCyclePages = $billingCyclePages - $data['included_pages'];
             //Add the extra pages used by the user to the invoice, if > 0
             if ($billingCyclePages > 0) {
                 $result = ChargeBee_Invoice::addAddonCharge($invoiceID, array("addon_id" => $addonName, "addon_quantity" => $billingCyclePages));
             }
             //Reset the user statistics back to 0.
             $query = "UPDATE user_statistics SET billing_cycle_logins = 0, billing_cycle_documents = 0, billing_cycle_pages = 0\n\t\t\t\t\t\t  WHERE user_id = ?";
             $stmt = $this->sql->link->prepare($query);
             if (!$stmt) {
                 die('Invalid query: ' . $this->sql->link->error);
             } else {
                 $stmt->bind_param('i', $userID);
                 $resultFromExec = $stmt->execute();
             }
             //Close the invoice and charge the customer.
             $result = ChargeBee_Invoice::collect($invoiceID);
             //$invoice = $result->invoice();
             break;
         case "subscription_renewed":
             break;
             //Fired when a user reactivates their subscription. Clear the counters for paid accounts.
         //Fired when a user reactivates their subscription. Clear the counters for paid accounts.
         case "subscription_reactivated":
             $returnResults = array();
             $subscriptionID = $inData['content']['subscription']['id'];
             $subscriptionPlanID = $inData['content']['subscription']['plan_id'];
             //Locate the user's page usage.
             $query = "SELECT user_subscriptions.chargebee_id, user_subscriptions.user_id, user_statistics.billing_cycle_pages, subscription_plans.included_pages\n\t\t\t\t\t\t\tFROM user_subscriptions\n\t\t\t\t\t\t\tLEFT JOIN user_statistics ON user_subscriptions.user_id = user_statistics.user_id\n\t\t\t\t\t\t\tLEFT JOIN subscription_plans ON user_subscriptions.subscription_plan_id = subscription_plans.plan_name\n\t\t\t\t\t\t\tWHERE user_subscriptions.chargebee_id =  ?";
             $stmt = $this->sql->link->prepare($query);
             if (!$stmt) {
                 die('Invalid query: ' . $this->sql->link->error);
             } else {
                 $stmt->bind_param('s', $subscriptionID);
                 $resultFromExec = $stmt->execute();
                 $stmt->store_result();
                 stmt_bind_assoc($stmt, $returnResults);
                 // loop through all result rows
                 while ($stmt->fetch()) {
                     foreach ($returnResults as $key => $value) {
                         $row_tmb[$key] = $value;
                     }
                     $data = $row_tmb;
                 }
             }
             $userID = $data['user_id'];
             //Reset the usage for free accounts.
             if ($subscriptionPlanID != "free") {
                 //Reset the user statistics back to 0.
                 $query = "UPDATE user_statistics SET billing_cycle_logins = 0, billing_cycle_documents = 0, billing_cycle_pages = 0\n\t\t\t\t\t\t\t  WHERE user_id = ?";
                 $stmt = $this->sql->link->prepare($query);
                 if (!$stmt) {
                     die('Invalid query: ' . $this->sql->link->error);
                 } else {
                     $stmt->bind_param('i', $userID);
                     $resultFromExec = $stmt->execute();
                 }
             }
             break;
             //Terminate free trial accounts when the free trial runs out.
         //Terminate free trial accounts when the free trial runs out.
         case "subscription_activated":
             $returnResults = array();
             $subscriptionID = $inData['content']['subscription']['id'];
             $subscriptionPlanID = $inData['content']['subscription']['plan_id'];
             $cardStatus = $inData['content']['customer']['card_status'];
             $trialEnd = $inData['content']['subscription']['trial_end'];
             $currentTermStart = $inData['content']['subscription']['current_term_start'];
             //The free trial has expired. Cancel their account.
             //if($subscriptionPlanID == "free" && $cardStatus == "no_card" && ($trialEnd == $currentTermStart)) {
             //	$result = ChargeBee_Subscription::cancel($subscriptionID);
             //}
             break;
         default:
             break;
     }
 }
Esempio n. 6
0
function put_work($mysql)
{
    if (empty($_POST)) {
        return false;
    }
    //get nets by bssid
    $sql = 'SELECT net_id, hccap FROM nets WHERE bssid = ? AND n_state=0';
    $stmt = $mysql->stmt_init();
    $stmt->prepare($sql);
    $data = array();
    stmt_bind_assoc($stmt, $data);
    //get net by nhash
    $nsql = 'SELECT net_id, hccap FROM nets WHERE mic = unhex(?) AND n_state=0';
    $nstmt = $mysql->stmt_init();
    $nstmt->prepare($nsql);
    $ndata = array();
    stmt_bind_assoc($nstmt, $ndata);
    //Update key stmt
    $usql = 'UPDATE nets SET pass=?, sip=?, n_state=1, sts=NOW() WHERE net_id=?';
    $ustmt = $mysql->stmt_init();
    $ustmt->prepare($usql);
    $mcount = 0;
    foreach ($_POST as $bssid_or_mic => $key) {
        if (strlen($key) < 8) {
            continue;
        }
        if (valid_mac($bssid_or_mic)) {
            //old style submission with bssid
            $ibssid = mac2long($bssid_or_mic);
            $stmt->bind_param('i', $ibssid);
            $stmt->execute();
            while ($stmt->fetch()) {
                $hccap = gzinflate(substr($data['hccap'], 10));
                if ($key == check_key($hccap, array($key))) {
                    //put result in nets
                    $stmt->free_result();
                    $iip = ip2long($_SERVER['REMOTE_ADDR']);
                    $net_id = $data['net_id'];
                    $ustmt->bind_param('sii', $key, $iip, $net_id);
                    $ustmt->execute();
                    //delete from n2d
                    $mysql->query("DELETE FROM n2d WHERE net_id={$net_id}");
                }
            }
        } elseif (valid_key($bssid_or_mic)) {
            //hash submission
            $mic = strtolower($bssid_or_mic);
            $nstmt->bind_param('s', $mic);
            $nstmt->execute();
            if ($nstmt->fetch()) {
                $hccap = gzinflate(substr($ndata['hccap'], 10));
                if ($key == check_key($hccap, array($key))) {
                    //put result in nets
                    $nstmt->free_result();
                    $iip = ip2long($_SERVER['REMOTE_ADDR']);
                    $net_id = $ndata['net_id'];
                    $ustmt->bind_param('sii', $key, $iip, $net_id);
                    $ustmt->execute();
                    //delete from n2d
                    $mysql->query("DELETE FROM n2d WHERE net_id={$net_id}");
                }
            }
        }
        if ($mcount++ > 20) {
            break;
        }
    }
    $stmt->close();
    $ustmt->close();
    $nstmt->close();
    //Update cracked net stats
    $mysql->query("UPDATE stats SET pvalue = (SELECT count(net_id) FROM nets WHERE n_state=1) WHERE pname='cracked'");
    //Create new cracked.txt.gz and update wcount
    $sql = 'SELECT pass FROM (SELECT pass, count(pass) AS c FROM nets WHERE n_state=1 GROUP BY pass) i ORDER BY i.c DESC';
    $stmt = $mysql->stmt_init();
    $stmt->prepare($sql);
    $data = array();
    stmt_bind_assoc($stmt, $data);
    $stmt->execute();
    $wl = '';
    $i = 0;
    while ($stmt->fetch()) {
        $wl = "{$wl}{$data['pass']}\n";
        $i += 1;
    }
    $stmt->close();
    $gzdata = gzencode($wl, 9);
    $md5gzdata = md5($gzdata, True);
    $sem = sem_get(888);
    sem_acquire($sem);
    file_put_contents(CRACKED, $gzdata);
    sem_release($sem);
    //update wcount for cracked dict
    $cr = '%' . basename(CRACKED);
    $sql = 'UPDATE dicts SET wcount = ?, dhash = ? WHERE dpath LIKE ?';
    $stmt = $mysql->stmt_init();
    $stmt->prepare($sql);
    $stmt->bind_param('iss', $i, $md5gzdata, $cr);
    $stmt->execute();
    $stmt->close();
    return true;
}
function db_query($query, $params, $rs = true, $newid = false, $onedimensionkey = false, $admin = false)
{
    !$admin ? $link = mysqli_connect(MYSQL_HOSTNAME, MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_DATABASE) : ($link = mysqli_connect(MYSQL_HOSTNAME, MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_DATABASE));
    if (!$link) {
        print 'Error connecting to MySQL Server. Errorcode: ' . mysqli_connect_error();
        exit;
    }
    // Prepare the query and split the parameters array into bound values
    if ($sql_stmt = mysqli_prepare($link, $query)) {
        if ($params) {
            $types = '';
            $new_params = array();
            $params_ref = array();
            // Split the params array into types string and parameters sub-array
            foreach ($params as $param) {
                $types .= $param['type'];
                $new_params[] = $param['value'];
            }
            // Cycle the new parameters array to make it an array by reference
            foreach ($new_params as $key => $parameter) {
                $params_ref[] =& $new_params[$key];
            }
            call_user_func_array('mysqli_stmt_bind_param', array_merge(array($sql_stmt, $types), $params_ref));
        }
    } else {
        print 'Error: ' . mysqli_error($link);
        exit;
    }
    // Execute the query
    mysqli_stmt_execute($sql_stmt);
    // Store results
    mysqli_stmt_store_result($sql_stmt);
    // If there are results to retrive, do so
    if ($rs) {
        $results = array();
        $rows = array();
        $row = array();
        stmt_bind_assoc($sql_stmt, $results);
        while (mysqli_stmt_fetch($sql_stmt)) {
            foreach ($results as $key => $value) {
                $row[$key] = $value;
            }
            $rows[] = $row;
        }
        if ($onedimensionkey) {
            $i = 0;
            foreach ($rows as $row) {
                $simplearray[$i] = $row[$onedimensionkey];
                $i++;
            }
        }
    } elseif ($newid) {
        $newid = mysqli_insert_id($link);
    }
    // Close objects
    mysqli_stmt_close($sql_stmt);
    mysqli_close($link);
    // Return necessary arrays/values
    if (isset($rows)) {
        return $rows;
    }
    if (isset($simplearray)) {
        return $simplearray;
    }
    if (isset($newid)) {
        return $newid;
    }
}
Esempio n. 8
0
 public function get()
 {
     global $session, $sql;
     $datasourceData = array();
     $returnResults = array();
     //If we're doing a datasource lookup, fetch the headers and line count from the SQL database.
     if (strstr($this->options['upload_dir'], "/datasources/")) {
         $userID = $session->get_user_var('id');
         $query = "SELECT `name`, `data_path`, `file_name`, `headers`, `lines`\n\t\t\t\t\t  FROM datasources\n\t\t\t\t\t  WHERE user_id = ? \n\t\t\t\t\t  AND deleted_at is null";
         $stmt = $sql->link->prepare($query);
         if (!$stmt) {
             die('Invalid query: ' . $sql->link->error);
         } else {
             $stmt->bind_param('i', $userID);
             $resultFromExec = $stmt->execute();
             $stmt->store_result();
             stmt_bind_assoc($stmt, $returnResults);
             // loop through all result rows
             while ($stmt->fetch()) {
                 foreach ($returnResults as $key => $value) {
                     $row_tmb[$key] = $value;
                 }
                 $datasourceData[$_SERVER['DOCUMENT_ROOT'] . $returnResults['data_path'] . $returnResults['file_name']] = $row_tmb;
             }
         }
     } else {
         $datasourceData = null;
     }
     $file_name = isset($_REQUEST['file']) ? basename(stripslashes($_REQUEST['file'])) : null;
     $subdir = isset($_REQUEST['subdir']) ? stripslashes($_REQUEST['subdir']) : null;
     if (!($subdir && $this->is_valid_subdir($subdir))) {
         $subdir = '';
     }
     //Check to ensure they have a home directory set.
     if ($this->session->get_user_var('file_directory') == "") {
         header('Content-type: application/json');
         echo json_encode(array());
     } else {
         if ($file_name) {
             $info = $this->get_file_object($file_name, $subdir, null);
         } else {
             $info = $this->get_file_objects(array(), $subdir, $datasourceData);
         }
         header('Content-type: application/json');
         echo json_encode($info);
     }
 }
Esempio n. 9
0
 public function checkAvailableQuota($inData)
 {
     $user_id = $this->session->get_user_var('id');
     $row_tmb = array();
     $data = array();
     $query = "SELECT user_statistics.billing_cycle_pages, subscription_plans.included_pages AS plan_included_pages, user_subscriptions.subscription_status, user_subscriptions.card_status, user_subscriptions.subscription_plan_id                                                                                                                                                     \n\t\t\t\t  FROM users\n\t\t\t\t  LEFT JOIN user_statistics on users.id = user_statistics.user_id\n\t\t\t\t  LEFT JOIN user_subscriptions on users.id = user_subscriptions.user_id\n\t\t\t\t  LEFT JOIN subscription_plans on user_subscriptions.subscription_plan_id = subscription_plans.plan_name\n\t\t\t\t  WHERE users.id = ? \n\t\t\t\t  AND users.deleted_at IS NULL";
     $stmt = $this->sql->link->prepare($query);
     if (!$stmt) {
         die('Invalid query: ' . $this->sql->link->error);
     } else {
         $stmt->bind_param('i', $user_id);
         $resultFromExec = $stmt->execute();
         $stmt->store_result();
         stmt_bind_assoc($stmt, $returnResults);
         // loop through all result rows
         while ($stmt->fetch()) {
             foreach ($returnResults as $key => $value) {
                 $row_tmb[$key] = $value;
             }
             $data = $row_tmb;
         }
     }
     $planData = $data;
     $documentData = $this->fetchDocumentData($inData, 1);
     $this->outData = array();
     $lastInArray = end($documentData);
     $mergeTotalPages = $lastInArray['datasource_lines'] * count($documentData);
     $this->outData['alert'] = $planData['plan_included_pages'] - $planData['billing_cycle_pages'] - $mergeTotalPages < 0 ? 1 : 0;
     //Alert the user if their quota will fall below 0 and incur additional fees.
     $this->outData['freeTrial'] = $planData['subscription_plan_id'] == "free" ? true : false;
     $this->outData['cardValid'] = $planData['card_status'] == "valid" ? true : false;
     $this->outData['subscriptionStatus'] = $planData['subscription_status'];
     $this->outData['totalMergePages'] = $mergeTotalPages;
     $this->outData['totalMergePagesDiff'] = $mergeTotalPages - ($planData['plan_included_pages'] - $planData['billing_cycle_pages'] > 0 ? $planData['plan_included_pages'] - $planData['billing_cycle_pages'] : 0);
     $this->outData['totalMergePagesDiff'] = $this->outData['totalMergePagesDiff'] < 0 ? 0 : $this->outData['totalMergePagesDiff'];
     $this->outData['quotaCurrentlyExceeded'] = $planData['plan_included_pages'] - $planData['billing_cycle_pages'] < 0 ? 1 : 0;
 }