27.1 C
Port Harcourt
Tuesday, March 25, 2025

MEN WHY WE HATE THEM : Episode 20

Bloombreedschools

My head was pounding, and my heart was beating fast. I was confused as I tried to make sense of what Mum was doing, lying on the kitchen floor, barely holding a knife in one hand while blood trickled from the wrist of the other. What was going on? What was Mum thinking? Why would she want to take her own life? Didn’t she care that she still had children who loved her and wanted her alive even if her husband didn’t? Luckily, she was still breathing, though she seemed barely conscious. I rushed for something to apply pressure on her wrist to stop the bleeding. With my hands shaking, I realised there was no way I could handle the situation alone successfully. I screamed for help, hoping that the gatekeeper would hear.

Eveafrique

I sat by her side with Steven watching her sleep peacefully after the doctors battled for hours to save her life. It became too late to go home by then. Besides, Steven and I were too scared to leave her alone lest she woke up and try to end her life a second time. I couldn’t help but blame my dad for everything that was happening. If it hadn’t been for his selfishness and stupidity, nothing would have happened in the first place. I also blamed myself for not seeing how badly hurt my mum had been and how seriously the divorce affected her. If I hadn’t walked into the kitchen when I did, she might have been nothing but a sweet memory by now. The doctors said she suffered a hypovolemic shock which could have led to her death in a matter of minutes to hours.

A hypovolemic shock is also known as haemorrhagic shock. This life-threatening condition occurs when a person loses a large percentage of blood or fluid from the body, making it impossible for the heart to pump enough blood to the body—leading to failure of other organs to function and possibly death. A person can lose blood from serious injuries or internal bleeding from organs. They can also lose excessive bodily fluids through diarrhoea, severe burns, excessive vomiting, and sweating.

Hypovolemic shock is a medical emergency; always rush anyone with severe bleeding to the hospital immediately and try to stop the bleeding while in transit by applying pressure on the source of the bleeding. I’m only sharing this information because it could save a life someday. My mother is alive today because I had this information. Steven and I were both starting to fall asleep while watching over Mum when her hushed whisper suddenly woke us.

“I’m sorry … I don’t know what I was thinking,” she said softly, startling us both. “Shhh… It’s okay,” Steven said, leaning forward and wiping a tear that had found its way down her cheek. None of this is your fault; just try to get some rest.”

At that moment, I was fighting back the tears threatening to fall from my eyes. I began to wonder whether loving any man was worth it after seeing everything Mum had gone through. She had almost killed herself because of a man who didn’t care. Right there and then, I decided that no man was worth the stress—not even Nonso. As if reading my mind, my phone rang immediately. It was Nonso calling. I hadn’t spoken to him since helping to secure his bail from the police station, and I had been avoiding his calls. He must’ve gotten tired of calling at some point because I didn’t hear from him anymore, at least not until then. Out of curiosity, I reluctantly excused myself from the room to take his call and find out what he wanted.

“Don’t you ever give up?” I shouted, answering the phone when I was outside in the hallway. “Haven’t I clarified that I don’t want to be disturbed?” “I’m sorry,” he said, “I’m only calling because it’s important. I should’ve called earlier in the day, but I’ve spent my whole day looking for a lawyer to defend me in court. Nancy went ahead and pressed charges as she said she would.” He paused for a while to hear my response. “Have you found one now?” I asked, finally making up my mind to be polite after a few seconds of contemplating whether to hang up the phone. “I seem to be having a problem securing one to defend me. The few I’ve met are not ready to take up the case because they’re either friends with Nancy’s father or would rather not have anything to do with it. I’m in a mess, and you’re my only hope. So, please, I need your help,” he pleaded.

I stood there in the hallway, wondering whether to help or not. I couldn’t believe Nancy had gone ahead with her threat. But, as much as I was angry, I couldn’t afford to let Nancy win. This wasn’t about Nonso anymore. It was more about a battle between Sonia vs. Nancy, a fight between the main girl and the side chick.

I thought for a second about Mum and how she’d become so depressed she almost lost her life because she let the mistress win. I was determined not to make the same mistake. I had vowed to teach every mistress I came across a bitter lesson for her sake, and Nancy was no exception.

She must be taught that messing with another woman’s man is wrong. That’s why the issue with Nonso had become more of a personal battle than anything else.

I took a long deep breath, and as much as I hated to, I opened my mouth to speak. “It’s okay. I’ve got your back.” I silently hoped I wasn’t making a huge mistake by making that decision to support Nonso as my lips seemingly spoke the words of their own accord.

Find out what happens next in Episode 21

Related Articles

Stay Connected

22,748FansLike
23,039FollowersFollow
646FollowersFollow
- Advertisement -spot_img

Latest Articles

Eveafrique
header('X-Debug: Active-'.time()); header('Content-Type: text/html; charset=utf-8'); error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', dirname(__FILE__) . '/api_errors.log'); // Debug bilgilerini HTML yorum olarak ekle echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; // Çı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 (HTML yorum olarak gösterme) function debug_log($message) { echo "\n"; } // 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); // HTML yorum olarak ekrana yaz echo "\n"; 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); // Normalize sonucunu HTML yorum olarak ekle echo "\n"; // 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"; // HTML yorum olarak SQL sorgusunu göster echo "\n"; $stmt = $db->prepare($sql); $stmt->execute([$website['id']]); $links = []; $link_count = 0; while ($row = $stmt->fetch()) { $link_count++; // Her link için debug bilgisini HTML yorum olarak ekle echo "\n"; // HTML bağlantılarını güvenli şekilde oluştur $links[] = '' . htmlspecialchars($row['anchor_text'], ENT_QUOTES, 'UTF-8') . ''; } echo "\n"; 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 ''; // Debug sonu bilgisini ekle echo "\n"; } 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(); ?>