databaseConnection = new mysqli("localhost", "furatalog_usr", "1yRNpaUtXu[cw@-m", "furatalog"); $_GET["moin"] = "hi"; $this->secureGET = $_GET; foreach ($this->secureGET as $query_string_variable => $value) { $newValue = str_replace('"', '\"', $value); $newValue = str_replace("'", "\'", $newValue); $newValue = str_replace(";", "", $newValue); $newValue = str_replace("`", "", $newValue); $this->secureGET[$query_string_variable] = $newValue; } } private function getCreatorID($creatorURL) { $creatorURL = implode('/', array_slice(explode('/', $creatorURL), 0, 3)); $creatorRequestResult = $this->databaseConnection->query("SELECT * FROM creator WHERE `gumroad_url`='" . $creatorURL . "'"); if ($creatorRequestResult->num_rows > 0) { $creatorID = $creatorRequestResult->fetch_assoc()["id"]; } else { $string = file_get_contents($creatorURL); $dom = new DomDocument(); $dom->loadHTML($string); $finder = new DomXPath($dom); $creatorName = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' profile ')]")[0]->childNodes[0]->childNodes[0]->textContent; $creatorpicture = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' profile ')]")[0]->childNodes[0]->childNodes[0]->childNodes[0]->attributes[1]->textContent; $this->databaseConnection->query("INSERT INTO `creator` (`id`, `name`, `pb_url`, `booth_url`, `gumroad_url`, `payhip_url`, `jinxxy_url`) VALUES (NULL, '" . str_replace("'", "\'", $creatorName) . "', '" . $creatorpicture . "', '', '" . $creatorURL . "', '', '')"); $creatorResult = $this->databaseConnection->query("SELECT id FROM `creator` WHERE gumroad_url='" . $creatorURL . "'"); $creatorID = $creatorResult->fetch_assoc()["id"]; } return (string)$creatorID; } private function getCurrencyID($currencySymbol) { $result = $this->databaseConnection->query("SELECT id FROM currency WHERE symbol='" . $currencySymbol . "'"); $currencyID = $result->fetch_assoc()["id"]; return (int)$currencyID; } public function getItems($section, $page = 1) { if (!isset($this->secureGET["s"])) { $this->secureGET["s"] = ""; } $this->secureGET["s"] = rtrim($this->secureGET["s"]); $whereRequest = ""; if (isset($this->secureGET["s"])) { $searchSplitArray = explode(" ", $this->secureGET["s"]); foreach ($searchSplitArray as $key => $value) { //$tmpVal = str_replace("'","\'", $value); $tmpVal = preg_replace("/[^a-zA-Z0-9\s]/", "", $value); if ($whereRequest != "") { $whereRequest .= " AND "; } //$tmpVal = implode('%', str_split($tmpVal)); $newtmpVal = ""; $maxStringPos = strlen($tmpVal); $currentStringPos = 1; foreach (str_split($tmpVal) as $key2 => $value2) { if ($currentStringPos < $maxStringPos) { $newtmpVal .= $value2 . "[^" . $value2 . "]{0,2}"; } else { $newtmpVal .= $value2; } $currentStringPos++; } $tmpVal = $newtmpVal; $whereRequest .= "(content.name REGEXP '" . $tmpVal . "' OR creator.name REGEXP '" . $tmpVal . "' " . ($section==1 ? " OR species.name REGEXP '" . $tmpVal . "' OR species.tag REGEXP '" . $tmpVal . "') " : ")") . ""; } } else { $whereRequest .= "(content.name LIKE '%%' OR creator.name LIKE '%%' " . ($section==1 ? " OR species.name LIKE '%%' OR species.tag LIKE '%%') " : ")") . ""; } $tmp = $this->databaseConnection->query(" SELECT content.id as 'content_id', content.name as 'content_name', content.price as 'content_price', content.rating as 'content_rating', content.url as 'content_url', content.image as 'content_image', currency.currency as 'currency_currency', currency.symbol as 'currency_symbol', `currency`.`font-awesome` as 'currency_fontawesome', creator.name as 'creator_name', creator.pb_url as 'creator_pb_url' " . ($section==1?", species.name as 'species_name'":"") . " FROM `content` JOIN creator ON content.creator_id=creator.id JOIN currency ON content.currency_id=currency.id " . ($section==1?" JOIN content_species ON content.id=content_species.content_id JOIN species ON content_species.species_id=species.id":"") . " WHERE " . $whereRequest . " AND (content.section LIKE \"%" . $section . "%\" " . ((isset($_SESSION["nsfw"]) && $_SESSION["nsfw"]==true) ? '' : 'AND content.nsfw = 0') . ") GROUP BY content.id ORDER BY content.id DESC LIMIT " . ($page - 1) * 40 . ", 40; "); $total = $this->databaseConnection->query(" SELECT content.id as 'content_id', content.name as 'content_name', content.price as 'content_price', content.rating as 'content_rating', content.url as 'content_url', content.image as 'content_image', currency.currency as 'currency_currency', currency.symbol as 'currency_symbol', `currency`.`font-awesome` as 'currency_fontawesome', creator.name as 'creator_name', creator.pb_url as 'creator_pb_url' " . ($section==1?", species.name as 'species_name'":"") . " FROM `content` JOIN creator ON content.creator_id=creator.id JOIN currency ON content.currency_id=currency.id " . ($section==1?" JOIN content_species ON content.id=content_species.content_id JOIN species ON content_species.species_id=species.id":"") . " WHERE " . $whereRequest . " AND (content.section LIKE \"%" . $section . "%\" " . ((isset($_SESSION["nsfw"]) && $_SESSION["nsfw"]==true) ? '' : 'AND content.nsfw = 0') . ") GROUP BY content.id "); $this->maxpages = (ceil((int)$total->num_rows / 40)); $items = array(); while ($row = $tmp->fetch_assoc()) { $items[] = $row; } return $items; } function printScriptSec() { $currentpage = (isset($_GET["p"]) ? $_GET["p"] : 1); $search=isset($_GET["s"]) ? "&s=" . $_GET["s"] : ""; $nextpage=isset($_GET["p"]) ? $_GET["p"] : 1; $prevpage=isset($_GET["p"]) ? $_GET["p"] : 1; echo " "; } function printItemLists($section) { echo "
"; $page = isset($_GET["p"]) ? $_GET["p"] : 1; $this->printItemList($section, $page); echo "
"; echo "
"; $page = isset($_GET["p"]) ? ((int)$_GET["p"] + 1) : 2; $this->printItemList($section, $page); echo "
"; if (isset($_GET["p"]) && ((int)$_GET["p"]) >= 2) { echo "
"; $page = isset($_GET["p"]) ? ((int)$_GET["p"] - 1) : 0; $this->printItemList($section, $page); echo "
"; } } private function printItemList($section, $page) { $items = $this->getItems($section, $page); foreach ($items as $item) { $currency = $item["currency_fontawesome"]=="" ? $item["currency_symbol"] : $item["currency_fontawesome"]; if (str_contains($item["content_url"],"gumroad")) { $plattform = "https://assets.gumroad.com/assets/pink-icon-c5f5013768a1da41246e70403f02afc8b34ac89c20f3ba2dd0a01f3973027700.png"; } else if (str_contains($item["content_url"],"booth")) { $plattform = "https://asset.booth.pm/favicon.ico"; } else if (str_contains($item["content_url"],"payhip")) { $plattform = "https://payhip.com/images/designv2/favicon/favicon-196x196.png"; } else if (str_contains($item["content_url"],"jinxxy")) { $plattform = "https://jinxxy.com/static/favicons/favicon.ico"; } echo "
"; } } public function printNsfwCheck() { if (isset($_SESSION["nsfw"]) && $_SESSION["nsfw"] == true) { echo ''; } else if (isset($_SESSION["nsfw"]) && $_SESSION['nsfw'] == false) { echo ''; } else { // Base URL $url = "https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; // New parameter to add $newParam = "nsfw="; // Check if the URL already has query parameters if (strpos($url, '?') !== false) { // Append with '&' $url .= '&' . $newParam; } else { // Append with '?' $url .= '?' . $newParam; } echo '
Do you want to see NSFW content?
Yes No
'; } } public function printPagerNumbers() { $currentpage = (isset($_GET["p"]) ? $_GET["p"] : 1); $currentMaxPages = $this->maxpages; $search=isset($_GET["s"]) ? "&s=" . $_GET["s"] : ""; $before = ""; if (!($currentpage <= 1)) { echo "<<"; echo "<"; } for ($i = $currentpage-1; ($i > 0 && $i > ($currentpage-3)); $i--) { if (($i+1) == 1) return; $before = "" . $i . "" . $before; } echo $before; echo "" . $currentpage . ""; for ($i = $currentpage+1; ($i <= $currentMaxPages && $i < ($currentpage+3)); $i++) { if ($currentMaxPages == $currentpage) return; echo "" . $i . ""; } if (!($currentpage >= $currentMaxPages)) { echo ">"; echo ">>"; } } }