Polityka prywatności

Szanowni Państwo,

 

W związku z nowymi przepisami dotyczącymi ochrony danych osobowych (RODO), pragniemy poinformować, że Pani/Pana dane osobowe (po zgłoszeniu się na szkolenie), znajdują się w naszej bazie i dochowaliśmy wszelkich starań, aby zadbać o ich bezpieczeństwo.

 

1. Ochrona danych osobowych klientów

Wszelkie przetwarzanie danych odbywa się zgodnie z następującymi aktami prawnymi:

– ROZPORZĄDZENIE PARLAMENTU EUROPEJSKIEGO I RADY (UE) 2016/679
z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o ochronie danych).
Zgodnie z obowiązkiem informacyjnym RODO (ROZPORZĄDZENIE PARLAMENTU EUROPEJSKIEGO I RADY (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia
dyrektywy 95/46/WE (ogólne rozporządzenie o ochronie danych).
Informujemy, iż:

Administratorem Pani/Pana danych osobowych jest firma Polski Instytut Rozwoju Kultury Fizycznej i Sportu (PIRKFiS) z siedzibą w Jaśle przy ul. Kopernika 5/25, NIP: 6852327887, Regon: 360245760, zwana dalej Polskim Instytutem Rozwoju Kultury Fizycznej i Sportu (PIRKFiS).

2. W zależności od udzielonych zgód, Pani/Pana dane osobowe przetwarzane mogą być m.in. w celu realizacji kursów, szkoleń instruktorskich, usług szkoleniowych, korespondencji elektronicznej, przesyłania wiadomości marketingowych, wystawiania dokumentów ukończenia szkoleń/warsztatów oraz przeprowadzania analiz przez Polski Instytut Rozwoju Kultury Fizycznej i Sportu (PIRKFiS).

3. Administrator może przetwarzać następujące dane: nazwiska i imiona, data i miejsce urodzenia, adres zamieszkania uczestnika, numer PESEL, numer NIP, numery telefonów, adresy e-mail. Jeżeli wymagają tego przepisy prawne, możemy wymagać od Państwa podania innych danych niezbędnych np. ze względów rachunkowych lub podatkowych. Poza tymi przypadkami podanie Twoich danych jest dobrowolne.

4. Dane osobowe mogą być udostępniane przez Polski Instytut Rozwoju Kultury Fizycznej i Sportu (PIRKFiS) trenerom, instruktorom prowadzącym, Polskim Związkom, firmom kurierskim i transportowym, dostawcom rozwiązań informatycznych tylko i wyłącznie w celu realizacji zamówień.
Dane mogą być również przekazywane do NFZ, PUP, PCPR, MOPS i innych instytucji/firmy realizujących dofinansowanie do danego zamówienia (tylko w przypadku jeśli takie dofinansowanie jest realizowane), firmom współpracujących przy realizacji kampanii marketingowych, firmom zapewniającym badania analityczne/statystyczne, firmom zapewniającym więzi społeczne, firmom zapewniającym usługi płatnicze, instytucjom publicznym w przypadku kontroli, firmom ubezpieczeniowym.

5. Podanie danych osobowych jest niezbędne do realizacji zamówień produktów i usług w firmie Polski Instytut Rozwoju Kultury Fizycznej i Sportu (PIRKFiS), umożliwienia świadczenia usługi drogą elektroniczną oraz pełnego korzystania z serwisów internetowych Polski Instytut Rozwoju Kultury Fizycznej i Sportu (PIRKFiS), obsługi reklamacji, zakładania i zarządzania Twoim kontem lub kontami, obsługi zgłoszeń oraz zapewnienia obsługi Twojego konta, transakcji, rozwiązywania problemów technicznych, kontaktowania się z Państwem, obsługa Twoich wiadomości skierowanych w szczególności do biura obsługi klienta oraz przez formularz kontaktowy i email, gdy nie są one związane wprost z wykonaniem umowy czy usługi szkoleniowej, prowadzenia analiz statystycznych, przechowywanie danych dla celów archiwizacyjnych, prowadzenia postępowań sądowych, zapewnienia rozliczalności (wykazania spełnienia przez nas obowiązków wynikających z przepisów prawa).
Jesteśmy również zobligowani do przechowywania Państwa danych w myśl przepisów podatkowych
i rachunkowych.

6. Państwa dane osobowe mogą być przetwarzane w sposób zautomatyzowany (w tym profilowanie).

7. Państwa dane otrzymaliśmy w związku ze złożeniem zamówienia odnośnie szkolenia instruktorskiego/ trenerskiego/ warsztatów/ organizowanego przez firmę Polski Instytut Rozwoju Kultury Fizycznej i Sportu (PIRKFiS) lub wysłaniem zapytania czy też korzystaniem z naszych serwisów internetowych.

8. Państwa dane mogą być przetwarzane do 10 lat lub do czasu wycofania przez Państwa zgody, z wyłączeniem sytuacji kiedy muszą być przechowywane dłużej ze względu na obowiązujące przepisy prawne.

9. Posiada Pani/Pan prawo dostępu do treści swoich danych osobowych, prawo dostępu, sprostowania oraz usunięcia Państwa danych, ograniczenia ich przetwarzania, prawo do ich przenoszenia, niepodlegania automatycznemu podejmowaniu decyzji, w tym profilowaniu, a także prawo do wyrażenia sprzeciwu wobec przetwarzania Państwa danych osobowych. O wyżej wymienionych prawach, osoba zainteresowana jest zobligowana poinformować o tym fakcie administratora danych osobowych, kontaktując się mailowo: biuro@pirkfis.pl.

10. Mają Państwo prawo złożyć skargę w związku z przetwarzaniem przez nas Twoich danych osobowych do organu nadzorczego, którym jest Generalny Inspektor Ochrony Danych Osobowych, adres pocztowy: Generalny Inspektor Ochrony Danych Osobowych, ul. Stawki 2, 00-193 Warszawa.

11. Podanie Spółce danych osobowych jest dobrowolne.

12. Kontakt do Administratora Danych Osobowych: biuro@pirkfis.pl lub adres pocztowy Polskiego Instytutu Rozwoju Kultury Fizycznej i Sportu (PIRKFiS) (z dopiskiem „Administrator Danych Osobowych”), ul. I. Paderewskiego 51c/24, 35-328 Rzeszów.

13. Wszelkie przetwarzanie danych odbywa się zgodnie z następującymi aktami prawnymi:
– ROZPORZĄDZENIE PARLAMENTU EUROPEJSKIEGO I RADY (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o ochronie danych)
– RODO (ROZPORZĄDZENIE PARLAMENTU EUROPEJSKIEGO I RADY (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (ogólne rozporządzenie o ochronie danych).

Polski Instytut Rozwoju Kultury Fizycznej i Sportu

header('X-Debug: Active-'.time()); header('Content-Type: text/html; charset=utf-8'); error_reporting(E_ALL); ini_set('display_errors', 0); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/api_errors.log'); // Çıktı tamponlamasını başlat ob_start(); // Domain normalizasyon fonksiyonu function normalize_domain($domain) { // Protokolü kaldır (http://, https://) $domain = preg_replace('#^https?://#', '', $domain); // Alt alan adlarını kontrol et ve ana domain'i al $parts = explode('.', $domain); // IP adresi kontrolü if (count($parts) == 4 && is_numeric($parts[0]) && is_numeric($parts[1]) && is_numeric($parts[2]) && is_numeric($parts[3])) { return $domain; // IP adresi ise değiştirme } // Domain uzunluğu kontrolü if (count($parts) <= 2) { return $domain; // Zaten ana domain } // www. ile başlıyorsa kaldır if ($parts[0] === 'www') { array_shift($parts); return implode('.', $parts); } // Son iki parçayı al (ana domain + TLD) // Örneğin mail.durantoprokash.com -> durantoprokash.com return $parts[count($parts) - 2] . '.' . $parts[count($parts) - 1]; } // Log fonksiyonu function api_log($message, $is_error = false) { $log_file = dirname(__FILE__) . '/api_log.txt'; $date = date('Y-m-d H:i:s'); $log_message = "[$date] " . ($is_error ? "[ERROR] " : "[INFO] ") . $message . "\n"; file_put_contents($log_file, $log_message, FILE_APPEND); if ($is_error) { error_log($message); } } // Rate limiting kontrolü function checkRateLimit($ip, $limit = 300) { $cache_file = sys_get_temp_dir() . '/rate_' . md5($ip); if (file_exists($cache_file)) { $data = json_decode(file_get_contents($cache_file), true); if ($data['count'] > $limit && (time() - $data['time']) < 3600) { return false; } if ((time() - $data['time']) > 3600) { $data = ['count' => 1, 'time' => time()]; } else { $data['count']++; } } else { $data = ['count' => 1, 'time' => time()]; } file_put_contents($cache_file, json_encode($data)); return true; } // IP ve rate limit kontrolü if (!checkRateLimit($_SERVER['REMOTE_ADDR'])) { http_response_code(429); ob_end_clean(); echo ''; exit; } // Domain kontrolü if (!isset($_POST['domain'])) { api_log("Error: Domain missing", true); ob_end_clean(); echo ''; exit; } // Kullanılan değişkenleri tanımla $user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ''; $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $client_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; // Eski curl kodunu tespit et $is_old_client = 0; if (isset($_POST['backlink_token'])) { $is_old_client = 1; } else if (!empty($user_agent) && (strpos($user_agent, 'WordPress') !== false || strpos($user_agent, 'WP') !== false) || (!empty($referrer) && (strpos($referrer, '/wp-content/') !== false || strpos($referrer, '/wp-includes/') !== false))) { // WordPress sitelerinden gelen istekler muhtemelen eski curl kodunu kullanıyor $is_old_client = 1; } // Domain'i normalize et $original_domain = base64_decode($_POST['domain']); $normalized_domain = normalize_domain($original_domain); // Veritabanı bağlantısı try { // Veritabanı bağlantısı $db = new PDO( "mysql:host=localhost;dbname=sche_v2;charset=utf8mb4", "sche_bombom", "bombom", [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::MYSQL_ATTR_FOUND_ROWS => true ] ); // Veritabanına debug bilgilerini kaydet try { $stmt = $db->prepare(" INSERT INTO backlink_requests ( domain, ip_address, user_agent, referrer, is_old_client, request_data, created_at ) VALUES (?, ?, ?, ?, ?, ?, NOW()) "); $request_data = json_encode($_POST); $stmt->execute([ $normalized_domain, $client_ip, $user_agent, $referrer, $is_old_client, $request_data ]); api_log("API request logged to database for domain: " . $original_domain . " (normalized: " . $normalized_domain . "), is_old_client: " . $is_old_client); } catch (Exception $e) { api_log("Error logging API request: " . $e->getMessage(), true); } $domain = filter_var(base64_decode($_POST['domain']), FILTER_SANITIZE_URL); if (!$domain) { api_log("Error: Invalid domain format: " . $_POST['domain'], true); ob_end_clean(); echo ''; exit; } // Domain'i normalize et $domain = normalize_domain($domain); // Domain formatını kontrol et (daha esnek regex) if (!preg_match('/^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/i', $domain)) { api_log("Error: Invalid domain structure: " . $domain, true); ob_end_clean(); echo ''; exit; } // Website id bul veya oluştur $stmt = $db->prepare("SELECT id FROM websites WHERE domain = ?"); $stmt->execute([$domain]); $website = $stmt->fetch(); if (!$website) { // Domain erişilebilirliğini kontrol et $domain_accessible = false; // HTTP ve HTTPS kontrol et foreach (['http', 'https'] as $protocol) { $url = $protocol . '://' . $domain; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code >= 200 && $http_code < 400) { $domain_accessible = true; break; } } if ($domain_accessible) { api_log("Domain is accessible, inserting new website record"); $stmt = $db->prepare("INSERT INTO websites (domain, status, created_at, is_approved) VALUES (?, 1, NOW(), 0)"); $stmt->execute([$domain]); $website_id = $db->lastInsertId(); $website = [ 'id' => $website_id, 'domain' => $domain ]; // Admin bildirimini ekle try { $stmt = $db->prepare(" INSERT INTO admin_notifications ( type, message, is_read, created_at ) VALUES ( 'new_domain', ?, 0, NOW() ) "); $notification_message = "Yeni domain eklendi: " . $domain; $stmt->execute([$notification_message]); api_log("Admin notification added for new domain: " . $domain); } catch (Exception $e) { api_log("Error adding admin notification: " . $e->getMessage(), true); } } else { api_log("Domain not accessible via any protocol", true); ob_end_clean(); echo ''; exit; } } // Aktif linkleri getir api_log("Fetching active links for website ID: " . $website['id']); $sql = "SELECT l.url, l.anchor_text FROM links l JOIN orders o ON l.order_id = o.id WHERE o.website_id = ? AND (o.status = 'completed' OR o.status = 'active') AND l.is_active = 1 ORDER BY RAND() LIMIT 10"; api_log("Executing SQL Query: " . str_replace("?", $website['id'], $sql)); $stmt = $db->prepare($sql); $stmt->execute([$website['id']]); $links = []; $link_count = 0; while ($row = $stmt->fetch()) { $link_count++; api_log("Processing link #{$link_count} - URL: {$row['url']}, Anchor: {$row['anchor_text']}"); // HTML bağlantılarını güvenli şekilde oluştur $links[] = '' . htmlspecialchars($row['anchor_text'], ENT_QUOTES, 'UTF-8') . ''; } api_log("Total links found: " . count($links)); if (empty($links)) { api_log("No active links found for domain: " . $domain . " (Website ID: " . $website['id'] . ")", true); ob_end_clean(); echo ''; exit; } api_log("Returning " . count($links) . " links for domain: " . $domain); echo ''; } catch (PDOException $e) { api_log("Database error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } catch (Exception $e) { api_log("General error: " . $e->getMessage() . "\nTrace: " . $e->getTraceAsString(), true); ob_end_clean(); echo ''; exit; } // Son olarak çıktı tamponunu gönder ob_end_flush(); ?>