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; }
<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 {
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; } }
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; } }
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; } }
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); } }
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; }