Hakkımızda

Ne-Pel Ltd. Şti. olarak rakiplerimizin talep ettiğinden daha uygun fiyatlı ilan verme ihtiyaçlarının giderilmesi için 12.08.2021  tarihinde kurulmuştur.Daha emekleme aşamasında olan ve sizlerin sayesinde ülkemize kazandırmaya ant içtiğimiz, ilan ihtiyaçlarınızı en makul ücretlerle  gidermeye çalışan bir internet hizmetleri sunan firmayız. Fiyatlandırma politikamız her bir kişinin rahatlıkla uygun bir bedelle ilan ihtiyacını gidermesine yetecek hizmeti alması üzerinedir.Biz eğitimci bir aileyiz , ihtiyacımızdan fazla gelir elde edersek çoğunu eğitim alanında ihtiyaç sahibi öğrenci ve velilerine destek olarak kullanmayı tahahhüt ediyoruz.. BU konunun takipçisi olunuz.

* * - Günlük ve toplam ziyaret sayar * - 24 saat içinde aynı ziyaretçiyi tekrar saymaz (cookie) * - Basit bot filtreleme (User-Agent kontrolü) * - Güvenli dosya yazımı için flock() kullanır */ declare(strict_types=1); // Sayaç verisinin tutulacağı dosya (web kullanıcısı yazabilir olmalı) $dataFile = __DIR__ . '/counter-data.json'; // Basit bot filtresi (User-Agent) $ua = $_SERVER['HTTP_USER_AGENT'] ?? ''; $isBot = (bool) preg_match('/bot|spider|crawl|slurp|fetch|crawler|mediapartners/i', $ua); if ($isBot) { // Botları sayma ama yine de mevcut sayıları gösterebiliriz. echo renderCounter(readCounts($dataFile)); return; } // 24 saatlik tekil ziyaret için cookie $cookieName = 'site_counter_seen'; $hasSeen = isset($_COOKIE[$cookieName]); // Sayaç verisini oku/güncelle $counts = readCounts($dataFile); if (!$hasSeen) { $counts = incrementCounts($dataFile, $counts); // 24 saat boyunca tekrar sayma setcookie($cookieName, '1', [ 'expires' => time() + 86400, 'path' => '/', 'secure' => isset($_SERVER['HTTPS']), 'httponly' => true, 'samesite' => 'Lax', ]); } // HTML çıktı (isterseniz stilini değiştirin) echo renderCounter($counts); /** ----------------- Yardımcı Fonksiyonlar ----------------- */ function readCounts(string $file): array { if (!is_file($file)) { // Varsayılan yapı return [ 'total' => 0, 'daily' => [ date('Y-m-d') => 0, ], 'updatedAt' => time(), ]; } $json = @file_get_contents($file); if ($json === false) { return ['total' => 0, 'daily' => [date('Y-m-d') => 0], 'updatedAt' => time()]; } $data = json_decode($json, true); if (!is_array($data)) { $data = ['total' => 0, 'daily' => [], 'updatedAt' => time()]; } // Bugünün anahtarı yoksa ekle $today = date('Y-m-d'); if (!isset($data['daily'][$today])) { $data['daily'][$today] = 0; } return $data; } function incrementCounts(string $file, array $counts): array { $today = date('Y-m-d'); // Dosyayı aç/kilitle $dir = dirname($file); if (!is_dir($dir)) { @mkdir($dir, 0775, true); } $fp = @fopen($file, 'c+'); if (!$fp) { // Yazamıyorsak bellekte artırıp gösterelim $counts['total']++; $counts['daily'][$today] = ($counts['daily'][$today] ?? 0) + 1; $counts['updatedAt'] = time(); return $counts; } // Özel: başka bir süreç yazarken yarış olmasın diye kilit if (flock($fp, LOCK_EX)) { // Güncel içeriği tekrar oku (bu arada değişmiş olabilir) $current = stream_get_contents($fp); if ($current !== false && $current !== '') { $data = json_decode($current, true); if (is_array($data)) { $counts = $data + $counts; // eksik anahtarları koru if (!isset($counts['daily'][date('Y-m-d')])) { $counts['daily'][date('Y-m-d')] = 0; } } } // Artır $counts['total'] = (int)($counts['total'] ?? 0) + 1; $counts['daily'][$today] = (int)($counts['daily'][$today] ?? 0) + 1; $counts['updatedAt'] = time(); // Baştan yaz ftruncate($fp, 0); rewind($fp); fwrite($fp, json_encode($counts, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); return $counts; } function renderCounter(array $counts): string { $today = date('Y-m-d'); $total = number_format((int)($counts['total'] ?? 0), 0, ',', '.'); $todayCount = number_format((int)($counts['daily'][$today] ?? 0), 0, ',', '.'); // Basit, erişilebilir bir küçük footer bloğu return << Bugün: {$todayCount} Toplam: {$total}
HTML; }