• 20-09-2024, 00:03:50
    #1
    selamlar herkese,
    arkadaşlar post kısmında bir sorun mu var gözden geçirebilir misiniz? sonuçları getirmiyor direk sorgu sayfasını gösteriyor. yani verileri post etmemiş gibi.
    Edit: tek sorun tokeni aldigim yerdeki parantezleri silmemmiş. Enteresandir sisteme parantezlerle gonderince kabul ediyor. input value de ki degeri oldugu gibi gondermek lazimmis.
    $fileme=file_get_contents('https://www.turkiye.gov.tr/saglik-titck-nobetci-eczane-sorgulama?submit');
    $cookies = array();
    foreach ($http_response_header as $hdr) {
        if (preg_match('/^Set-Cookie:\s*([^;]+)/', $hdr, $matches)) {
            parse_str($matches[1], $tmp);
            $cookies += $tmp;
        }
    }
    
    preg_match('#<input type="hidden" name="token" value="\{(.*?)\}" />#si', $fileme, $token);
    
    $cityCode = 34;
    $date = '19/09/2024';
    
    function postByScrapedData($cityCode, $date, $cookies, $token){
    $curl = curl_init();
    curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://www.turkiye.gov.tr/saglik-titck-nobetci-eczane-sorgulama?submit',
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => '',
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1 ,
                CURLOPT_CUSTOMREQUEST => 'POST',
                CURLOPT_POSTFIELDS => http_build_query ([
                    'plakaKodu' => $cityCode,
                    'nobetTarihi' => $date,
                    'token' => $token,
                    'btn' => 'Sorgula'
                ]),
                CURLOPT_HTTPHEADER => array(
                    'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/117.0',
                    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
                    'Accept-Language: en-US,tr;q=0.5',
                    'Accept-Encoding: gzip, deflate, br',
                    'Referer: https://www.turkiye.gov.tr/saglik-titck-nobetci-eczane-sorgulama',
                    'Content-Type: application/x-www-form-urlencoded',
                    'Origin: https://www.turkiye.gov.tr',
                    'Connection: keep-alive',
                    'Cookie: '.http_build_query($cookies,'','; '),
                    'Upgrade-Insecure-Requests: 1',
                    'Sec-Fetch-Dest: document',
                    'Sec-Fetch-Mode: navigate',
                    'Sec-Fetch-Site: same-origin',
                    'Sec-Fetch-User: ?1',
                    'Pragma: no-cache',
                    'Cache-Control: no-cache')));
    $response = curl_exec($curl);
    
    curl_close($curl);
    return $response;
    }
    $sonuc= postByScrapedData($cityCode, $date, $cookies, $token[1]);
    
    echo $sonuc;
  • 20-09-2024, 03:41:17
    #2
    <?php
    // HTML sayfasını çekmeye çalışıyoruz
    $fileme = @file_get_contents('https://www.turkiye.gov.tr/saglik-titck-nobetci-eczane-sorgulama?submit');
    if ($fileme === false) {
        die("Sayfa çekilemedi. Bağlantıyı kontrol edin.");
    }
    
    // HTTP response başlıklarını kontrol ediyoruz
    if (empty($http_response_header)) {
        die("HTTP yanıt başlıkları alınamadı.");
    }
    
    // Çerezleri topluyoruz
    $cookies = array();
    foreach ($http_response_header as $hdr) {
        if (preg_match('/^Set-Cookie:\s*([^;]+)/', $hdr, $matches)) {
            parse_str($matches[1], $tmp);
            $cookies += $tmp;
        }
    }
    
    // Çerezlerin alınıp alınmadığını kontrol ediyoruz
    if (empty($cookies)) {
        die("Çerezler alınamadı.");
    } else {
        echo "Çerezler başarıyla alındı: ";
        print_r($cookies); // Çerezleri ekrana yazdır
    }
    
    // Token değerini almak için HTML'den form input'u kontrol ediyoruz
    preg_match('#<input type="hidden" name="token" value="(.*?)"#si', $fileme, $token);
    
    // Token alınıp alınmadığını kontrol ediyoruz
    if (empty($token[1])) {
        die("Token alınamadı. HTML yapısını kontrol edin.");
    } else {
        echo "Token başarıyla alındı: " . $token[1] . "\n";
    }
    
    $cityCode = 34;
    $date = '19/09/2024';
    
    // POST isteğini gönderen fonksiyon
    function postByScrapedData($cityCode, $date, $cookies, $token) {
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => 'https://www.turkiye.gov.tr/saglik-titck-nobetci-eczane-sorgulama?submit',
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => '',
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 0,
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => 'POST',
            CURLOPT_POSTFIELDS => http_build_query([
                'plakaKodu' => $cityCode,
                'nobetTarihi' => $date,
                'token' => $token,
                'btn' => 'Sorgula'
            ]),
            CURLOPT_HTTPHEADER => array(
                'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/117.0',
                'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
                'Accept-Language: en-US,tr;q=0.5',
                'Accept-Encoding: gzip, deflate, br',
                'Referer: https://www.turkiye.gov.tr/saglik-titck-nobetci-eczane-sorgulama',
                'Content-Type: application/x-www-form-urlencoded',
                'Origin: https://www.turkiye.gov.tr',
                'Connection: keep-alive',
                'Cookie: ' . http_build_query($cookies, '', '; '),
                'Upgrade-Insecure-Requests: 1',
                'Sec-Fetch-Dest: document',
                'Sec-Fetch-Mode: navigate',
                'Sec-Fetch-Site: same-origin',
                'Sec-Fetch-User: ?1',
                'Pragma: no-cache',
                'Cache-Control: no-cache'
            ),
        ));
    
        $response = curl_exec($curl);
    
        // CURL hatası olup olmadığını kontrol edelim
        if ($response === false) {
            $error = curl_error($curl);
            curl_close($curl);
            die("CURL hatası: $error");
        }
    
        $http_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        curl_close($curl);
    
        // HTTP yanıt kodunu kontrol edelim
        if ($http_code !== 200) {
            die("HTTP isteği başarısız oldu. Kod: $http_code");
        }
    
        return $response;
    }
    
    // POST isteği yapıyoruz ve sonucu kontrol ediyoruz
    $sonuc = postByScrapedData($cityCode, $date, $cookies, $token[1]);
    if ($sonuc === false) {
        die("POST isteği başarısız oldu.");
    } else {
        echo "POST isteği başarılı, sonuç: \n";
        echo $sonuc; // Sonucu ekrana yazdır
    }
    ?>
    bunu dene bi dostum
  • 20-09-2024, 10:25:45
    #3
    Dedigim gibi sayfa geliyor ama sanki post verisini almamis yada kabul etmemis gibi gozukuyor
  • 20-09-2024, 10:33:57
    #4
    kullanici62 adlı üyeden alıntı: mesajı görüntüle

    Dedigim gibi sayfa geliyor ama sanki post verisini almamis yada kabul etmemis gibi gozukuyor

    bu tür işlerde ne olur bilmiyorum ama normal de çalışması gerekmiyormu hiç bir sorun yok aslında
  • 20-09-2024, 12:01:46
    #5
    kullanici62 adlı üyeden alıntı: mesajı görüntüle
    selamlar herkese,
    arkadaşlar post kısmında bir sorun mu var gözden geçirebilir misiniz? sonuçları getirmiyor direk sorgu sayfasını gösteriyor. yani verileri post etmemiş gibi.

    $fileme=file_get_contents('https://www.turkiye.gov.tr/saglik-titck-nobetci-eczane-sorgulama?submit');
    $cookies = array();
    foreach ($http_response_header as $hdr) {
        if (preg_match('/^Set-Cookie:\s*([^;]+)/', $hdr, $matches)) {
            parse_str($matches[1], $tmp);
            $cookies += $tmp;
        }
    }
    
    preg_match('#<input type="hidden" name="token" value="\{(.*?)\}" />#si', $fileme, $token);
    
    $cityCode = 34;
    $date = '19/09/2024';
    
    function postByScrapedData($cityCode, $date, $cookies, $token){
    $curl = curl_init();
    curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://www.turkiye.gov.tr/saglik-titck-nobetci-eczane-sorgulama?submit',
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => '',
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 0,
                CURLOPT_FOLLOWLOCATION => true,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1 ,
                CURLOPT_CUSTOMREQUEST => 'POST',
                CURLOPT_POSTFIELDS => http_build_query ([
                    'plakaKodu' => $cityCode,
                    'nobetTarihi' => $date,
                    'token' => $token,
                    'btn' => 'Sorgula'
                ]),
                CURLOPT_HTTPHEADER => array(
                    'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/117.0',
                    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
                    'Accept-Language: en-US,tr;q=0.5',
                    'Accept-Encoding: gzip, deflate, br',
                    'Referer: https://www.turkiye.gov.tr/saglik-titck-nobetci-eczane-sorgulama',
                    'Content-Type: application/x-www-form-urlencoded',
                    'Origin: https://www.turkiye.gov.tr',
                    'Connection: keep-alive',
                    'Cookie: '.http_build_query($cookies,'','; '),
                    'Upgrade-Insecure-Requests: 1',
                    'Sec-Fetch-Dest: document',
                    'Sec-Fetch-Mode: navigate',
                    'Sec-Fetch-Site: same-origin',
                    'Sec-Fetch-User: ?1',
                    'Pragma: no-cache',
                    'Cache-Control: no-cache')));
    $response = curl_exec($curl);
    
    curl_close($curl);
    return $response;
    }
    $sonuc= postByScrapedData($cityCode, $date, $cookies, $token[1]);
    
    echo $sonuc;
    pm den iletişime geçilmiştir