Rev 143 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
include_once ('php/clsLibGTIN.php');
include_once ('php/constants.php');
error_reporting(E_ALL);
// add new entry to wishlist
function addWishlist($uid, $wlArr) {
$conn = MySessionHandler::getDBSessionId();
$created = mysqli_real_escape_string($conn, time());
$modified = $created;
$uid = mysqli_real_escape_string($conn, $uid);
$mid = isset($wlArr->{'mid'}) ? mysqli_real_escape_string($conn, $wlArr->{'mid'}) : "";
$rid = isset($wlArr->{'rid'}) ? mysqli_real_escape_string($conn, $wlArr->{'rid'}) : "";
$asin = isset($wlArr->{'asin'}) ? mysqli_real_escape_string($conn, $wlArr->{'asin'}) : null;
$barcode = (empty($wlArr->{'barcode'}) ? null : mysqli_real_escape_string($conn, $wlArr->{'barcode'}));
$title = isset($wlArr->{'title'}) ? mysqli_real_escape_string($conn, $wlArr->{'title'}) : null;
$artist = isset($wlArr->{'artist'}) ? mysqli_real_escape_string($conn, $wlArr->{'artist'}) : null;
$cond = 'Any';
$format = 'Any';
$currency = 'USD'; //bugbug
$price = null;
$url = isset($wlArr->{'url'}) ? mysqli_real_escape_string($conn, $wlArr->{'url'}) : null;
$thumbnail = isset($wlArr->{'thumbnail'}) ? mysqli_real_escape_string($conn, $wlArr->{'thumbnail'}) : null;
$ip = inet_pton($_SERVER['REMOTE_ADDR']);
$sql = "INSERT
INTO wishlist
(id, created, ip, modified, uid, mid, rid, asin, barcode, title, artist, cond, format, currency, price, url, thumbnail, checked)
VALUES (NULL, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0)";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, 'dsddddsssssssdss', $created, $ip, $modified, $uid, $mid, $rid, $asin, $barcode, $title, $artist, $cond, $format, $currency, $price, $url, $thumbnail);
if ($result = mysqli_stmt_execute($stmt)) {
return 0;
}
else {
$error = mysqli_errno($conn);
if ($error == 1062) {
return 1;
}
else {
error_log("MySQL Write Wishlist SQL: " . $sql);
error_log("MySQL Write Wishlist Error: " . mysqli_error($conn) . " (" . $error . ")");
return -1;
}
}
mysqli_stmt_close($stmt);
return -1;
}
function checkWishlist($type, $id) {
$conn = MySessionHandler::getDBSessionId();
if ($type == "master") {
$colName = "mid";
} else if ($type == "release") {
$colName = "rid";
} else if ($type == "asin") {
$colName = "asin";
}
$uid = mysqli_real_escape_string($conn, $_SESSION['sessData']['userID']);
$sql = "SELECT id
FROM wishlist
WHERE uid = '$uid' and $colName = '$id'";
if ($result = mysqli_query($conn, $sql)) {
if (mysqli_num_rows($result) > 0) {
return true;
}
}
else if (mysqli_errno($conn)) {
error_log("MySQL Check Wishlist SQL: " . $sql);
error_log("MySQL Check Wishlist Error: " . mysqli_error($conn) . " (" . mysqli_errno($conn) . ")");
return true;
}
return false;
}
function getWishlist() {
$xh = new Html;
$xh->init($_SESSION["htmlIndent"]);
if (!isLoggedIn()) {
$xh->add_attribute("class", "container bg-warning text-center py-3");
$xh->tag('div');
$xh->add_attribute("class", "display-6");
$xh->tag('p');
$xh->add_attribute("class", "material-icons");
$xh->tag('i', "error_outline");
$xh->tag('span', " Please login to your Find Cheap Music account in order to maintain the wishlist.");
$xh->close(); // p
$xh->close(); // div
$html = $xh->flush();
//error_log(print_r($html, 1));
return $html;
}
$conn = MySessionHandler::getDBSessionId();
$uid = $_SESSION['sessData']['userID'];
$sql = "SELECT *
FROM wishlist
WHERE uid = '$uid'";
if ($result = mysqli_query($conn, $sql)) {
if (mysqli_num_rows($result) > 0) {
$xh->add_attribute("class", "container pt-3");
$xh->tag('div');
$xh->add_attribute("method", "post");
$xh->add_attribute("action", "/index.php");
$xh->tag('form');
$xh->insert_code(inputSessionTab());
$xh->add_attribute("id", "discogsTitle");
$xh->add_attribute("type", "hidden");
$xh->add_attribute("name", "discogsTitle");
$xh->add_attribute("value", "");
$xh->single_tag('input');
$xh->add_attribute("id", "discogsArtist");
$xh->add_attribute("type", "hidden");
$xh->add_attribute("name", "discogsArtist");
$xh->add_attribute("value", "");
$xh->single_tag('input');
$xh->add_attribute("id", "discogsBarcode");
$xh->add_attribute("type", "hidden");
$xh->add_attribute("name", "discogsBarcode");
$xh->add_attribute("value", "");
$xh->single_tag('input');
$xh->insert_code(inputNonce());
$xh->add_attribute("class", "table");
$xh->tag('div');
$xh->add_attribute("id", "wishlistTable");
$xh->add_attribute("class", "table table-striped condensed table-hover small w-100 DataTable");
$xh->add_attribute("data-paging", "false");
$xh->add_attribute("data-searching", "true");
$xh->add_attribute("data-state-save", "false");
$xh->add_attribute("data-info", "true");
$xh->add_attribute("data-ordering", "true");
$xh->add_attribute("data-order", "[[ 1, "asc" ]]");
$xh->add_attribute("data-responsive", "true");
$xh->tag('table');
$xh->add_attribute("class", "thead-dark table-header-sticky");
$xh->tag('thead');
$xh->tag('tr');
$xh->add_attribute("data-name", "image");
$xh->add_attribute("data-width", "15%");
$xh->add_attribute("data-orderable", "false");
$xh->add_attribute("data-priority", "1");
$xh->tag('th', "");
$xh->add_attribute("data-name", "artist");
$xh->add_attribute("data-priority", "1");
$xh->add_attribute("class", "text-left");
$xh->tag('th', "Artist");
$xh->add_attribute("data-name", "title");
$xh->add_attribute("data-priority", "1");
$xh->add_attribute("class", "text-left");
$xh->tag('th', "Title");
$xh->add_attribute("data-name", "barcode");
$xh->add_attribute("data-priority", "4");
$xh->tag('th', "Barcode");
$xh->add_attribute("data-name", "condition");
$xh->add_attribute("data-priority", "3");
$xh->tag('th', "Condition");
$xh->add_attribute("data-name", "format");
$xh->add_attribute("data-priority", "3");
$xh->tag('th', "Format");
$xh->add_attribute("data-name", "price");
$xh->add_attribute("data-priority", "2");
$xh->tag('th', "Price");
$xh->add_attribute("data-name", "icons");
$xh->add_attribute("data-priority", "1");
$xh->add_attribute("data-orderable", "false");
$xh->tag('th', "");
$xh->close(); // tr
$xh->close(); // thead
$xh->tag('tbody');
while ($row = mysqli_fetch_assoc($result)) {
$artist = (empty($row["artist"]) ? "" : htmlentities($row["artist"]));
$altText = "Image for " . htmlentities($row['title']) . " by " . $artist;
$price = print_monetary($row['price'], $row['currency']);
$searchTitle = 'Searching for:<br><br><strong>';
if (!empty($row['title'])) { $searchTitle .= htmlentities($row['title']); }
if (!empty($row['title']) && !empty($artist)) { $searchTitle .= " by "; }
if (!empty($artist)) { $searchTitle .= $artist; }
if ($row['barcode'] !== null) {
$searchTitle .= " (" . displayBarcode($row['barcode']) . ")";
}
$searchTitle .= "</strong>";
$xh->add_attribute("id", "wlIdRow" . $row['id']);
$xh->add_attribute("data-id", $row['id']);
$xh->add_attribute("data-title", htmlentities($row['title']));
$xh->add_attribute("data-artist", $artist);
$xh->add_attribute("data-barcode", htmlentities($row['barcode']));
$xh->add_attribute("data-search-title", $searchTitle);
$xh->tag('tr');
$xh->add_attribute("class", "wl-img");
$xh->tag('td');
$xh->add_attribute("class", "img-fluid lazyload");
$xh->add_attribute("src",PIXEL);
$xh->add_attribute("data-src", $row["thumbnail"]);
$xh->add_attribute("alt", $altText);
$xh->single_tag('img');
$xh->close(); // td
$xh->tag('td', $artist);
$xh->tag('td', htmlentities($row['title']));
$xh->add_attribute("data-order", htmlentities($row['barcode']));
$xh->tag('td', displayBarcode($row['barcode']));
$xh->tag('td', $row['cond']);
$xh->tag('td', $row['format']);
$xh->add_attribute("data-order", $row['price']);
$xh->tag('td', $price);
$xh->tag('td');
$xh->add_attribute("id", "wlEditBtn" . $row['id']);
$xh->add_attribute("class", "btn btn-sm btn-warning rounded px-1");
$xh->add_attribute("type", "button");
$xh->add_attribute("data-toggle", "tooltip");
$xh->add_attribute("title", "Edit");
$xh->add_attribute("aria-label", "Edit Entry");
$xh->tag('button');
$xh->add_attribute("class", "material-icons");
$xh->tag('i', "edit");
$xh->close(); // button
$xh->tag('span' , " ");
$xh->add_attribute("id", "wlDeleteBtn" . $row['id']);
$xh->add_attribute("class", "btn btn-sm btn-danger rounded px-1");
$xh->add_attribute("type", "button");
$xh->add_attribute("data-toggle", "tooltip");
$xh->add_attribute("title", "Delete");
$xh->add_attribute("aria-label", "Delete Entry");
$xh->tag('button');
$xh->add_attribute("class", "material-icons");
$xh->tag('i', "cancel_presentation");
$xh->close(); // button
$xh->tag('span' , " ");
$xh->add_attribute("id", "wlInfoBtn" . $row['id']);
$xh->add_attribute("class", "btn btn-sm btn-info rounded px-1");
$xh->add_attribute("role", "button");
$xh->add_attribute("data-toggle", "tooltip");
$xh->add_attribute("title", "Information");
$xh->add_attribute("aria-label", "Information for Entry");
$xh->add_attribute("href", htmlentities($row['url']));
$xh->add_attribute("target", "_blank", "rel", "noreferrer noopener");
$xh->tag('a');
$xh->add_attribute("class", "material-icons");
$xh->tag('i', "info_outline");
$xh->close(); // a
$xh->tag('span' , " ");
$xh->add_attribute("id", "wlSearchBtn" . $row['id']);
$xh->add_attribute("type", "submit");
$xh->add_attribute("name", "submitBtn");
$xh->add_attribute("value", "discogsSearch");
$xh->add_attribute("class", "btn btn-sm btn-success rounded px-1");
$xh->tag('button');
$xh->add_attribute("class", "material-icons");
$xh->add_attribute("title", "Search for Store Offers");
$xh->add_attribute("aria-label", "Search Store Offers for Entry");
$xh->add_attribute("data-toggle", "tooltip");
$xh->tag('i', "search");
$xh->close(); // button
$xh->close(); // td
$xh->close(); // tr
}
$xh->close(); // tbody
$xh->close(); // table
$xh->add_attribute("nonce", base64_encode($_SESSION["nonce"]));
$xh->tag('script');
$str = my_trim('document.addEventListener("DOMContentLoaded", function() {');
$str .= my_trim(' document.getElementById("wishlistTable").addEventListener("click", function(event) {');
$str .= my_trim(' e = event.target.closest("button") || event.target.closest("a");');
$str .= my_trim(' tr = event.target.closest("tr");');
$str .= my_trim(' if ($(tr).hasClass("child")) {');
$str .= my_trim(' tr = tr.previousElementSibling;');
$str .= my_trim(' }');
$str .= my_trim(' if (e && tr && e.id.startsWith("wlEditBtn")) {');
$str .= my_trim(' var id = tr.getAttribute("data-id");');
$str .= my_trim(' window.dataLayer.push({ "event" : "trackEvent", "eventCategory" : "Wishlist", "eventAction" : "Edit", "eventLabel" : ""});');
$str .= my_trim(' editWishlist(id, e);');
$str .= my_trim(' } else if (e && tr && e.id.startsWith("wlDeleteBtn")) {');
$str .= my_trim(' var id = tr.getAttribute("data-id");');
$str .= my_trim(' var title = tr.getAttribute("data-title");');
$str .= my_trim(' var artist = tr.getAttribute("data-artist");');
$str .= my_trim(' window.dataLayer.push({ "event" : "trackEvent", "eventCategory" : "Wishlist", "eventAction" : "Delete", "eventLabel" : ""});');
$str .= my_trim(' deleteWishlist(id, e, title, artist);');
$str .= my_trim(' } else if (e && tr && e.id.startsWith("wlInfoBtn")) {');
$str .= my_trim(' window.dataLayer.push({ "event" : "trackEvent", "eventCategory" : "Album Info", "eventAction" : "Click", "eventLabel" : ""});');
$str .= my_trim(' } else if (e && tr && e.id.startsWith("wlSearchBtn")) {');
$str .= my_trim(' var title = tr.getAttribute("data-title");');
$str .= my_trim(' var artist = tr.getAttribute("data-artist");');
$str .= my_trim(' var barcode = tr.getAttribute("data-barcode");');
$str .= my_trim(' var searchTitle = tr.getAttribute("data-search-title");');
$str .= my_trim(' document.getElementById("discogsTitle").value = title;');
$str .= my_trim(' document.getElementById("discogsArtist").value = artist;');
$str .= my_trim(' document.getElementById("discogsBarcode").value = barcode;');
$str .= my_trim(' progressBar(searchTitle);');
$str .= my_trim(' if (window.google_tag_manager && window.ga && ga.create) {');
$str .= my_trim(' event.preventDefault();');
$str .= my_trim(' var st = "";');
$str .= my_trim(' var form = event.target.closest("form");');
$str .= my_trim(' var input = document.createElement("input");');
$str .= my_trim(' input.setAttribute("type", "hidden");');
$str .= my_trim(' input.setAttribute("name", "submitBtn");');
$str .= my_trim(' input.setAttribute("value", "discogsSearch");');
$str .= my_trim(' form.appendChild(input);');
$str .= my_trim(' if (title.length > 0) st += title;');
$str .= my_trim(' if (title.length > 0 && artist.length > 0) st += " by ";');
$str .= my_trim(' if (artist.length > 0) st += artist;');
$str .= my_trim(' window.dataLayer.push({ "event" : "search", "search_term" : st, "eventCallback": function () {form.submit();}});');
$str .= my_trim(' }');
$str .= my_trim(' }');
$str .= my_trim(' });');
$str .= my_trim('});');
$xh->insert_code($str);
$xh->close(); // script
$xh->close(); // div
$xh->close(); // form
$xh->add_attribute("class", "modal fade");
$xh->add_attribute("id", "editWishlistModal");
$xh->tag('div');
$xh->add_attribute("class", "modal-dialog");
$xh->tag('div');
$xh->add_attribute("class", "modal-content");
$xh->tag('div');
$xh->add_attribute("class", "modal-header bg-secondary");
$xh->tag('div');
$xh->add_attribute("class", "modal-title display-6");
$xh->tag('p', "Edit Wishlist Entry");
$xh->close(); // div>
$xh->add_attribute("class", "mt-0");
$xh->add_attribute("id", "wlMsg");
$xh->tag('span', "");
$xh->insert_code(inputSessionTab());
$xh->add_attribute("type", "hidden");
$xh->add_attribute("name", "wlId");
$xh->add_attribute("id", "wlId");
$xh->single_tag('input');
$xh->add_attribute("class", "modal-body");
$xh->tag('div');
$xh->add_attribute("class", "form-group");
$xh->tag('div');
$xh->add_attribute("for", "wlArtist");
$xh->tag('label', "Artist:");
$xh->add_attribute("type", "text");
$xh->add_attribute("class", "form-control clearable");
$xh->add_attribute("id", "wlArtist");
$xh->single_tag('input');
$xh->close(); // div
$xh->add_attribute("class", "form-group");
$xh->tag('div');
$xh->add_attribute("for", "wlTitle");
$xh->tag('label', "Title:");
$xh->add_attribute("type", "text");
$xh->add_attribute("class", "form-control clearable");
$xh->add_attribute("id", "wlTitle");
$xh->single_tag('input');
$xh->close(); // div
$xh->add_attribute("class", "form-group");
$xh->tag('div');
$xh->add_attribute("for", "wlBarcode");
$xh->tag('label', "Barcode:");
$xh->add_attribute("type", "text");
$xh->add_attribute("class", "form-control clearable");
$xh->add_attribute("id", "wlBarcode");
$xh->single_tag('input');
$xh->close(); // div
$xh->add_attribute("class", "form-group");
$xh->tag('div');
$xh->add_attribute("for", "wlCond");
$xh->tag('label', "Condition:");
$xh->add_attribute("class", "form-control");
$xh->add_attribute("id", "wlCond");
$xh->tag('select');
$xh->tag('option', "Any");
$xh->tag('option', "New");
$xh->tag('option', "Used");
$xh->close(); // select
$xh->close(); // div
$xh->add_attribute("class", "form-group");
$xh->tag('div');
$xh->add_attribute("for", "wlFormat");
$xh->tag('label', "Format:");
$xh->add_attribute("class", "form-control");
$xh->add_attribute("id", "wlFormat");
$xh->tag('select');
$xh->tag('option', "Any");
$xh->tag('option', "CD");
$xh->tag('option', "Record");
$xh->tag('option', "Digital");
$xh->tag('option', "Book");
$xh->close(); // select
$xh->close(); // div
$xh->add_attribute("class", "form-group");
$xh->tag('div');
$xh->add_attribute("for", "wlPrice");
$xh->tag('label', "Ceiling Price:");
$xh->add_attribute("type", "text");
$xh->add_attribute("class", "form-control clearable");
$xh->add_attribute("id", "wlPrice");
$xh->single_tag('input');
$xh->close(); // div
$xh->close(); // div
$xh->add_attribute("class", "modal-footer bg-secondary");
$xh->tag('div');
$xh->add_attribute("id", "saveEditedWl");
$xh->add_attribute("type", "button");
$xh->add_attribute("class", "btn btn-success");
$xh->add_attribute("name", "submitBtn");
$xh->add_attribute("value", "Save");
$xh->tag('button', "Save");
$xh->add_attribute("nonce", base64_encode($_SESSION["nonce"]));
$xh->tag('script');
$str = my_trim('document.addEventListener("DOMContentLoaded", function() {');
$str .= my_trim(' document.getElementById("saveEditedWl").addEventListener("click", function() {');
$str .= my_trim(' saveEditedWishlist();');
$str .= my_trim(' });');
$str .= my_trim('});');
$xh->insert_code($str);
$xh->close(); // script
$xh->add_attribute("type", "button");
$xh->add_attribute("class", "btn btn-danger");
$xh->add_attribute("data-dismiss", "modal");
$xh->tag('button', "Cancel");
$xh->close(); // div
$xh->close(); // div
$xh->close(); // div
$xh->close(); // div
$xh->close(); // div
}
else {
$xh->add_attribute("class", "container bg-warning text-center py-3");
$xh->tag('div');
$xh->add_attribute("class", "display-6");
$xh->tag('p');
$xh->add_attribute("class", "material-icons");
$xh->tag('i', "bookmark");
$xh->tag('span', " Your wishlist is currently empty. Add matching albums from the search results.");
$xh->close(); // p
$xh->close(); // div
}
}
else if (mysqli_errno($conn)) {
error_log("MySQL Read Wishlist SQL: " . $sql);
error_log("MySQL Read Wishlist Error: " . mysqli_error($conn) . " (" . mysqli_errno($conn) . ")");
}
$html = $xh->flush();
//error_log(print_r($html, 1));
return $html;
}
function deleteWishlist($uid, $id) {
$conn = MySessionHandler::getDBSessionId();
$id = mysqli_real_escape_string($conn, $id);
$uid = mysqli_real_escape_string($conn, $uid);
$sql = "DELETE FROM wishlist WHERE id = $id AND uid = $uid;";
if (!($result = mysqli_query($conn, $sql))) {
error_log("MySQL Delete Wishlist SQL: " . $sql);
error_log("MySQL Delete Wishlist Error: " . mysqli_error($conn) . " (" . mysqli_errno($conn) . ")");
return -1;
}
return 0;
}
function updateWishlist($uid, $wlArr) {
$conn = MySessionHandler::getDBSessionId();
$modified = mysqli_real_escape_string($conn, time());
$id = (empty($wlArr['id']) ? null : mysqli_real_escape_string($conn, $wlArr['id']));
$uid = mysqli_real_escape_string($conn, $uid);
$barcode = (empty($wlArr['barcode']) ? null : mysqli_real_escape_string($conn, $wlArr['barcode']));
$title = isset($wlArr['title']) ? mysqli_real_escape_string($conn, $wlArr['title']) : null;
$artist = isset($wlArr['artist']) ? mysqli_real_escape_string($conn, $wlArr['artist']) : null;
$cond = isset($wlArr['cond']) ? mysqli_real_escape_string($conn, $wlArr['cond']) : "Any";
$format = isset($wlArr['format']) ? mysqli_real_escape_string($conn, $wlArr['format']) : "Any";
$currency = 'USD'; //bugbug
$price = isset($wlArr['price']) ? mysqli_real_escape_string($conn, $wlArr['price']) : null;
$ip = inet_pton($_SERVER['REMOTE_ADDR']);
$sql = "UPDATE wishlist
SET modified=?, barcode=?, title=?, artist=?, cond=?, format=?, price=?, ip=?
WHERE id=? and uid=?";
$stmt = mysqli_prepare($conn, $sql);
mysqli_stmt_bind_param($stmt, 'dsssssdsdd', $modified, $barcode, $title, $artist, $cond, $format, $price, $ip, $id, $uid);
if ($result = mysqli_stmt_execute($stmt)) {
return 0;
}
else {
error_log("MySQL Update Wishlist SQL: " . $sql);
error_log("MySQL Update Wishlist Error: " . mysqli_error($conn) . " (" . $error . ")");
return -1;
}
mysqli_stmt_close($stmt);
return -1;
}
function unsubscribeWishlist($arr) {
if (empty($arr['id']) || empty($arr['email'])) {
return "";
}
$conn = MySessionHandler::getDBSessionId();
$modified = mysqli_real_escape_string($conn, time());
$id = mysqli_real_escape_string($conn, $arr['id']);
$email = mysqli_real_escape_string($conn, $arr['email']);
$sql = "UPDATE users
SET wlEmailFlag = '0'
WHERE id=$id and email='$email'";
if (!($result = mysqli_query($conn, $sql))) {
error_log("MySQL Update Wishlist SQL: " . $sql);
error_log("MySQL Update Wishlist Error: " . mysqli_error($conn) . " (" . $error . ")");
}
$xh = new Html;
$xh->init($_SESSION["htmlIndent"]);
$xh->add_attribute("class", "container text-center bg-warning p-3 rounded");
$xh->tag('div');
$xh->add_attribute("class", "display-6 font-weight-bold");
$xh->tag('p', "The wishlist price check emails for " . $email . " have been turned off.");
$xh->tag('p', "You can reinstate the emails at any time by setting the option 'Email Price Checks' for your account back to 'Yes'.");
$xh->close(); // div>";
$html = $xh->flush();
//error_log(print_r($html, 1));
return $html;
}
function checkPriceMonitor() {
if (empty($_SESSION['sessData']['userID'])) {
unset($_SESSION['priceMonitor']);
return -1;
}
$conn = MySessionHandler::getDBSessionId();
$uid = $_SESSION['sessData']['userID'];
$sql = "SELECT created, access
FROM pricemonitor
WHERE userId = '$uid'";
if ($result = mysqli_query($conn, $sql)) {
if (mysqli_num_rows($result) > 0) {
if ($row = mysqli_fetch_assoc($result)) {
$_SESSION['priceMonitor']['created'] = $row['created'];
$_SESSION['priceMonitor']['access'] = $row['access'];
if ($_SESSION['priceMonitor']['created'] > $_SESSION['priceMonitor']['access']) {
$_SESSION['priceMonitor']['newFlag'] = true;
} else {
$_SESSION['priceMonitor']['newFlag'] = false;
}
return 0;
}
}
}
else if (mysqli_errno($conn)) {
error_log("MySQL Read Price Monitor SQL: " . $sql);
error_log("MySQL Read Price Monitor Error: " . mysqli_error($conn) . " (" . mysqli_errno($conn) . ")");
}
return -1;
}
function getPriceMonitor() {
$xh = new Html;
$xh->init($_SESSION["htmlIndent"]);
if (!isLoggedIn()) {
$xh->add_attribute("class", "container bg-warning text-center py-3");
$xh->tag('div');
$xh->add_attribute("class", "display-6");
$xh->tag('p');
$xh->add_attribute("class", "material-icons");
$xh->tag('i', "error_outline");
$xh->tag('span', " Please login to your Find Cheap Music account in order to see the price monitor results.");
$xh->close(); // p
$xh->close(); // div
$html = $xh->flush();
//error_log(print_r($html, 1));
return $html;
}
$conn = MySessionHandler::getDBSessionId();
$uid = $_SESSION['sessData']['userID'];
$sql = "SELECT data
FROM pricemonitor
WHERE userId = '$uid'";
if ($result = mysqli_query($conn, $sql)) {
if (mysqli_num_rows($result) > 0) {
if ($row = mysqli_fetch_assoc($result)) {
$access = mysqli_real_escape_string($conn, time());
$sql = "UPDATE pricemonitor
SET access = $access
WHERE userId = '$uid'";
if (!($result = mysqli_query($conn, $sql))) {
error_log("MySQL Update Price Monitor SQL: " . $sql);
error_log("MySQL Update Price Monitor Error: " . mysqli_error($conn) . " (" . $error . ")");
}
$html = gzdecode(base64_decode($row['data']));
$html = str_replace(base64_encode("xxxNONCExxx"), base64_encode($_SESSION["nonce"]), $html);
return ($html);
}
}
}
else if (mysqli_errno($conn)) {
error_log("MySQL Read Price Monitor SQL: " . $sql);
error_log("MySQL Read Price Monitor Error: " . mysqli_error($conn) . " (" . mysqli_errno($conn) . ")");
}
$xh->add_attribute("class", "container bg-warning text-center py-3");
$xh->tag('div');
$xh->add_attribute("class", "display-6");
$xh->tag('p');
$xh->add_attribute("class", "material-icons");
$xh->tag('i', "bookmark");
$xh->tag('span', " Your price monitor list is currently empty.");
$xh->close(); // p
$xh->close(); // div
$html = $xh->flush();
//error_log(print_r($html, 1));
return $html;
}