• 04-02-2024, 14:23:05
    #1
    merhaba scriptimde döviz kurlarının çekildiği bir sistem mevcut ama hata vermeye başladı durup dururken ve 500 hatası alıp sisteme erişim sağlayamıyorum tek dosya bu var döviz ile alakalı ama sorunun ne olduğunu anlayamadım yardımcı olabilirmisiniz.

    <?php
    
    if(!empty($_GET["kur"])):
        $_SESSION["kur"] = $_GET["kur"];
    endif;    
     
    if(!$_SESSION["kur"]):
         $_SESSION["kur"] = "TRY";
    endif;    
    
    function Altinkaynak($deger){
        try{
             // $client = new SoapClient('http://data.altinkaynak.com/DataService.asmx?WSDL');
            $client = new SoapClient('http://data.altinkaynak.com/DataService.asmx?WSDL', array('connection_timeout'=> 5));
            $auth = new stdClass();
            $auth->Username = 'AltinkaynakWebServis';
            $auth->Password = 'AltinkaynakWebServis';
            $header = new SoapHeader('http://data.altinkaynak.com/', 'AuthHeader', $auth, false);
            $client->__setSoapHeaders($header);
            // altın kurları
            $response = $client->GetCurrency();
            $xml = simplexml_load_string($response->GetCurrencyResult);
            //dolar kurları
            $golden = $client->getGold();
            $goldenxml = simplexml_load_string($golden->GetGoldResult);
                return $euro = $xml->Kur[$deger]->Satis;
        }catch (Exception $e) {  
            // echo "Soap Hatasi Olustu: " . $e->getMessage();
        }
    }
    
    function CanliDoviz($deger){
        $jsonVeri = file_get_contents("https://canlidoviz.com/doviz-kurlari.jsonld",true);
    
        $veri = json_decode($jsonVeri,1);
        $response = $veri["mainEntity"]["itemListElement"]; //doviz listesi
        $birim = $response[$deger]["currency"];
        $result = $response[$deger]["currentExchangeRate"]["price"]; //fiyatı alıyoruz
        
        return  $result;
         // $deger =  0 dolar 1 euro
    }
    
    function TCMBDoviz($deger, $alis = null){
            $veri = simplexml_load_file('http://www.tcmb.gov.tr/kurlar/today.xml');
     
        $icerik =  $veri->Currency;
        $name = $icerik->Isim;
        $KurKodu = $icerik->attributes();
            $ForexAlis = $icerik[$deger]->ForexBuying; // Forex Alış
            $ForexSatis = $icerik[$deger]->ForexSelling; // Forex Satış
            $BankaAlis = $icerik[$deger]->BanknoteBuying; // Banka Alış
            $BankaSatis = $icerik[$deger]->BanknoteSelling; // Banka Satış
        if($alis == ""){
            return $BankaSatis;
        }elseif($alis == "satis"){
            return $BankaSatis;
        }elseif($alis == "alis"){
            return $BankaAlis;
        }
    }
    function TruncGil($key,$alis){
        $jsonVeri = file_get_contents("https://finans.truncgil.com/today.json",true);
        $veri = json_decode($jsonVeri,1);
        $birim = [
            'USD' => 'ABD DOLARI',
            'EUR' => 'EURO',
        ];  
        return    $veri[$birim[$key]][$alis];
    }
    
    
     if ( time() > $_SESSION['doviz_cooldown'] ):
        unset($_SESSION['dolar']);
        unset($_SESSION['euro']);
        unset($_SESSION['doviz_cooldown']);
        
        if(CanliDoviz(0) != ""):
            $dolar    = round(CanliDoviz(0), 2);
            $euro    = round(CanliDoviz(1), 2);
        elseif(Altinkaynak(0) != ""):
            $dolar    =  round(Altinkaynak(0), 2);
            $euro    =  round(Altinkaynak(1), 2);
        elseif(TCMBDoviz(0) != ""):
            $dolar    = round(TCMBDoviz(0), 2);
            $euro    = round(TCMBDoviz(3), 2);
        elseif(TruncGil("USD","Alış") != "" ):
            $dolar    = round(TruncGil("USD","Satış"), 2);
            $euro    = round(TruncGil("EUR","Satış"), 2);
        endif;  
    
        $_SESSION['doviz_cooldown'] = time() + 900;
        $_SESSION['dolar'] = $dolar;
        $_SESSION['euro'] = $euro;
     else:
        $dolar = $_SESSION['dolar'];
        $euro = $_SESSION['euro'];
     endif;
     
     function kur($value,$value2){
         if($value2 == "EUR"):
             return $value." EUR";
         elseif($value2 == "USD"):
             return "$".$value;
         elseif($value2 == "TRY"):
             return $value." TL";
         endif;    
     }
  • 04-02-2024, 14:30:16
    #2
    <?php
    
    session_start(); // Session'ı başlat
    
    // GET isteği üzerinden kur parametresini al
    if (!empty($_GET["kur"])) {
        $_SESSION["kur"] = $_GET["kur"];
    }
    
    // Varsayılan kur belirleme
    if (!isset($_SESSION["kur"]) || empty($_SESSION["kur"])) {
        $_SESSION["kur"] = "TRY";
    }
    
    function Altinkaynak($deger) {
        try {
            // SOAP istemcisini oluştur
            $client = new SoapClient('http://data.altinkaynak.com/DataService.asmx?WSDL', array('connection_timeout' => 5));
            $auth = new stdClass();
            $auth->Username = 'AltinkaynakWebServis';
            $auth->Password = 'AltinkaynakWebServis';
            $header = new SoapHeader('http://data.altinkaynak.com/', 'AuthHeader', $auth, false);
            $client->__setSoapHeaders($header);
            
            // Altın kurlarını al
            $response = $client->GetCurrency();
            $xml = simplexml_load_string($response->GetCurrencyResult);
            
            // Euro değerini döndür
            return $xml->Kur[$deger]->Satis;
        } catch (Exception $e) {
            // SOAP hatası oluştuğunda
            // Hata iletisi: echo "Soap Hatasi Olustu: " . $e->getMessage();
            return null; // Hata durumunu işlemek için null döndür
        }
    }
    
    function CanliDoviz($deger) {
        try {
            // CanliDoviz API'sinden JSON verisini al
            $jsonVeri = file_get_contents("https://canlidoviz.com/doviz-kurlari.jsonld", true);
            $veri = json_decode($jsonVeri, true);
            
            // Döviz verisini döndür
            return $veri["mainEntity"]["itemListElement"][$deger]["currentExchangeRate"]["price"];
        } catch (Exception $e) {
            // Hata durumunda
            return null; // Hata durumunu işlemek için null döndür
        }
    }
    
    function TCMBDoviz($deger, $alis = null) {
        try {
            // TCMB'den XML verisini al
            $veri = simplexml_load_file('http://www.tcmb.gov.tr/kurlar/today.xml');
            
            // Kur bilgilerini al
            $forexSatis = $veri->Currency[$deger]->ForexSelling;
            $bankaSatis = $veri->Currency[$deger]->BanknoteSelling;
            
            // Değerleri döndür
            if ($alis === "satis") {
                return $forexSatis;
            } elseif ($alis === "alis") {
                return $bankaSatis;
            }
        } catch (Exception $e) {
            // Hata durumunda
            return null; // Hata durumunu işlemek için null döndür
        }
    }
    
    function TruncGil($key, $alis) {
        try {
            // Truncgil API'sinden JSON verisini al
            $jsonVeri = file_get_contents("https://finans.truncgil.com/today.json", true);
            $veri = json_decode($jsonVeri, true);
            
            // Döviz değerini döndür
            $birim = ['USD' => 'ABD DOLARI', 'EUR' => 'EURO'];
            return $veri[$birim[$key]][$alis];
        } catch (Exception $e) {
            // Hata durumunda
            return null; // Hata durumunu işlemek için null döndür
        }
    }
    
    // Veriyi güncellemek için cooldown süresini kontrol et
    if (time() > $_SESSION['doviz_cooldown']) {
        unset($_SESSION['dolar']);
        unset($_SESSION['euro']);
        unset($_SESSION['doviz_cooldown']);
        
        // Döviz değerlerini al
        if ($dolar = CanliDoviz(0)) {
            $_SESSION['dolar'] = round($dolar, 2);
        } elseif ($dolar = Altinkaynak(0)) {
            $_SESSION['dolar'] = round($dolar, 2);
        } elseif ($dolar = TCMBDoviz(0)) {
            $_SESSION['dolar'] = round($dolar, 2);
        } elseif ($dolar = TruncGil("USD", "Alış")) {
            $_SESSION['dolar'] = round($dolar, 2);
        }
        
        if ($euro = CanliDoviz(1)) {
            $_SESSION['euro'] = round($euro, 2);
        } elseif ($euro = Altinkaynak(1)) {
            $_SESSION['euro'] = round($euro, 2);
        } elseif ($euro = TCMBDoviz(3)) {
            $_SESSION['euro'] = round($euro, 2);
        } elseif ($euro = TruncGil("EUR", "Alış")) {
            $_SESSION['euro'] = round($euro, 2);
        }
        
        // Veri güncelleme cooldown süresini ayarla
        $_SESSION['doviz_cooldown'] = time() + 900; // 900 saniye (15 dakika)
    } else {
        // Cooldown süresi geçmemişse, önbellekten verileri al
        $dolar = $_SESSION['dolar'];
        $euro = $_SESSION['euro'];
    }
    
    function kur($value, $value2) {
        if ($value2 == "EUR") {
            return $value . " EUR";
        } elseif ($value2 == "USD") {
            return "$" . $value;
        } elseif ($value2 == "TRY") {
            return $value . " TL";
        }
    }
    iyi forumlar.
  • 04-02-2024, 14:30:37
    #3
    kodun en üstünde <? sonrasına
    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    kodlarını ekleyip hataları görüntüleyebilirsiniz
  • 04-02-2024, 14:31:24
    #4
    session problemidir muhtemelen session_start() göremedim başta
  • 04-02-2024, 14:31:49
    #5
    devopsbyxvan adlı üyeden alıntı: mesajı görüntüle
    <?php
    
    session_start(); // Session'ı başlat
    
    // GET isteği üzerinden kur parametresini al
    if (!empty($_GET["kur"])) {
        $_SESSION["kur"] = $_GET["kur"];
    }
    
    // Varsayılan kur belirleme
    if (!isset($_SESSION["kur"]) || empty($_SESSION["kur"])) {
        $_SESSION["kur"] = "TRY";
    }
    
    function Altinkaynak($deger) {
        try {
            // SOAP istemcisini oluştur
            $client = new SoapClient('http://data.altinkaynak.com/DataService.asmx?WSDL', array('connection_timeout' => 5));
            $auth = new stdClass();
            $auth->Username = 'AltinkaynakWebServis';
            $auth->Password = 'AltinkaynakWebServis';
            $header = new SoapHeader('http://data.altinkaynak.com/', 'AuthHeader', $auth, false);
            $client->__setSoapHeaders($header);
            
            // Altın kurlarını al
            $response = $client->GetCurrency();
            $xml = simplexml_load_string($response->GetCurrencyResult);
            
            // Euro değerini döndür
            return $xml->Kur[$deger]->Satis;
        } catch (Exception $e) {
            // SOAP hatası oluştuğunda
            // Hata iletisi: echo "Soap Hatasi Olustu: " . $e->getMessage();
            return null; // Hata durumunu işlemek için null döndür
        }
    }
    
    function CanliDoviz($deger) {
        try {
            // CanliDoviz API'sinden JSON verisini al
            $jsonVeri = file_get_contents("https://canlidoviz.com/doviz-kurlari.jsonld", true);
            $veri = json_decode($jsonVeri, true);
            
            // Döviz verisini döndür
            return $veri["mainEntity"]["itemListElement"][$deger]["currentExchangeRate"]["price"];
        } catch (Exception $e) {
            // Hata durumunda
            return null; // Hata durumunu işlemek için null döndür
        }
    }
    
    function TCMBDoviz($deger, $alis = null) {
        try {
            // TCMB'den XML verisini al
            $veri = simplexml_load_file('http://www.tcmb.gov.tr/kurlar/today.xml');
            
            // Kur bilgilerini al
            $forexSatis = $veri->Currency[$deger]->ForexSelling;
            $bankaSatis = $veri->Currency[$deger]->BanknoteSelling;
            
            // Değerleri döndür
            if ($alis === "satis") {
                return $forexSatis;
            } elseif ($alis === "alis") {
                return $bankaSatis;
            }
        } catch (Exception $e) {
            // Hata durumunda
            return null; // Hata durumunu işlemek için null döndür
        }
    }
    
    function TruncGil($key, $alis) {
        try {
            // Truncgil API'sinden JSON verisini al
            $jsonVeri = file_get_contents("https://finans.truncgil.com/today.json", true);
            $veri = json_decode($jsonVeri, true);
            
            // Döviz değerini döndür
            $birim = ['USD' => 'ABD DOLARI', 'EUR' => 'EURO'];
            return $veri[$birim[$key]][$alis];
        } catch (Exception $e) {
            // Hata durumunda
            return null; // Hata durumunu işlemek için null döndür
        }
    }
    
    // Veriyi güncellemek için cooldown süresini kontrol et
    if (time() > $_SESSION['doviz_cooldown']) {
        unset($_SESSION['dolar']);
        unset($_SESSION['euro']);
        unset($_SESSION['doviz_cooldown']);
        
        // Döviz değerlerini al
        if ($dolar = CanliDoviz(0)) {
            $_SESSION['dolar'] = round($dolar, 2);
        } elseif ($dolar = Altinkaynak(0)) {
            $_SESSION['dolar'] = round($dolar, 2);
        } elseif ($dolar = TCMBDoviz(0)) {
            $_SESSION['dolar'] = round($dolar, 2);
        } elseif ($dolar = TruncGil("USD", "Alış")) {
            $_SESSION['dolar'] = round($dolar, 2);
        }
        
        if ($euro = CanliDoviz(1)) {
            $_SESSION['euro'] = round($euro, 2);
        } elseif ($euro = Altinkaynak(1)) {
            $_SESSION['euro'] = round($euro, 2);
        } elseif ($euro = TCMBDoviz(3)) {
            $_SESSION['euro'] = round($euro, 2);
        } elseif ($euro = TruncGil("EUR", "Alış")) {
            $_SESSION['euro'] = round($euro, 2);
        }
        
        // Veri güncelleme cooldown süresini ayarla
        $_SESSION['doviz_cooldown'] = time() + 900; // 900 saniye (15 dakika)
    } else {
        // Cooldown süresi geçmemişse, önbellekten verileri al
        $dolar = $_SESSION['dolar'];
        $euro = $_SESSION['euro'];
    }
    
    function kur($value, $value2) {
        if ($value2 == "EUR") {
            return $value . " EUR";
        } elseif ($value2 == "USD") {
            return "$" . $value;
        } elseif ($value2 == "TRY") {
            return $value . " TL";
        }
    }
    iyi forumlar.
    Halen daha 500 hatası alırsanız PM İletin, yardımcı olayım.
  • 04-02-2024, 14:33:00
    #6
    session start ekledim hata kodları şu şekilde

    [B]Warning[/B]: Undefined array key "doviz_cooldown" in [B]/home/ahsapaza/public_html/eklentiler/doviz/doviz.php[/B] on line [B]91[/B]
    
    [B]Warning[/B]: file_get_contents(https://canlidoviz.com/doviz-kurlari.jsonld): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in [B]/home/ahsapaza/public_html/eklentiler/doviz/doviz.php[/B] on line [B]43[/B]
    
    [B]Warning[/B]: Trying to access array offset on value of type null in [B]/home/ahsapaza/public_html/eklentiler/doviz/doviz.php[/B] on line [B]47[/B]
    
    [B]Warning[/B]: Trying to access array offset on value of type null in [B]/home/ahsapaza/public_html/eklentiler/doviz/doviz.php[/B] on line [B]47[/B]
    
    [B]Warning[/B]: Trying to access array offset on value of type null in [B]/home/ahsapaza/public_html/eklentiler/doviz/doviz.php[/B] on line [B]47[/B]
    
    [B]Warning[/B]: Trying to access array offset on value of type null in [B]/home/ahsapaza/public_html/eklentiler/doviz/doviz.php[/B] on line [B]47[/B]
    
    [B]Warning[/B]: Trying to access array offset on value of type null in [B]/home/ahsapaza/public_html/eklentiler/doviz/doviz.php[/B] on line [B]47[/B]
    
    [B]Fatal error[/B]: Uncaught TypeError: round(): Argument #1 ($num) must be of type int|float, SimpleXMLElement given in /home/ahsapaza/public_html/eklentiler/doviz/doviz.php:100 Stack trace: #0 /home/ahsapaza/public_html/eklentiler/doviz/doviz.php(100): round() #1 /home/ahsapaza/public_html/index.php(15): include('/home/ahsapaza/...') #2 {main} thrown in [B]/home/ahsapaza/public_html/eklentiler/doviz/doviz.php[/B] on line [B]100[/B]
  • 04-02-2024, 14:38:09
    #7
    <?php

    // Session başlatma kontrolü
    session_start();

    if (!empty($_GET["kur"])) {
    $_SESSION["kur"] = $_GET["kur"];
    }

    if (!isset($_SESSION["kur"])) {
    $_SESSION["kur"] = "TRY";
    }

    function Altinkaynak($deger)
    {
    try {
    $client = new SoapClient('http://data.altinkaynak.com/DataService.asmx?WSDL', array('connection_timeout' => 5));
    $auth = new stdClass();
    $auth->Username = 'AltinkaynakWebServis';
    $auth->Password = 'AltinkaynakWebServis';
    $header = new SoapHeader('http://data.altinkaynak.com/', 'AuthHeader', $auth, false);
    $client->__setSoapHeaders($header);

    // Altın kurları
    $response = $client->GetCurrency();
    $xml = simplexml_load_string($response->GetCurrencyResult);

    // Dolar kurları
    return $xml->Kur[$deger]->Satis;
    } catch (Exception $e) {
    // SOAP hatası oluştuğunda işlem yapılabilir.
    // echo "Soap Hatasi Olustu: " . $e->getMessage();
    return null;
    }
    }

    function CanliDoviz($deger)
    {
    $jsonVeri = @file_get_contents("https://canlidoviz.com/doviz-kurlari.jsonld");

    if ($jsonVeri === false) {
    // Hata durumu
    return null;
    }

    $veri = json_decode($jsonVeri, true);
    $response = $veri["mainEntity"]["itemListElement"];

    return $response[$deger]["currentExchangeRate"]["price"] ?? null;
    }

    function TCMBDoviz($deger, $alis = null)
    {
    $veri = simplexml_load_file('http://www.tcmb.gov.tr/kurlar/today.xml');

    if ($veri === false) {
    // Hata durumu
    return null;
    }

    $icerik = $veri->Currency;
    $ForexAlis = $icerik[$deger]->ForexBuying ?? null;
    $ForexSatis = $icerik[$deger]->ForexSelling ?? null;
    $BankaAlis = $icerik[$deger]->BanknoteBuying ?? null;
    $BankaSatis = $icerik[$deger]->BanknoteSelling ?? null;

    if ($alis === "") {
    return $BankaSatis;
    } elseif ($alis === "satis") {
    return $BankaSatis;
    } elseif ($alis === "alis") {
    return $BankaAlis;
    }

    return null;
    }

    function TruncGil($key, $alis)
    {
    $jsonVeri = @file_get_contents("https://finans.truncgil.com/today.json");

    if ($jsonVeri === false) {
    // Hata durumu
    return null;
    }

    $veri = json_decode($jsonVeri, true);
    $birim = [
    'USD' => 'ABD DOLARI',
    'EUR' => 'EURO',
    ];

    return $veri[$birim[$key]][$alis] ?? null;
    }

    // Zaman kontrolü ve döviz değerlerini algoritması
    if (time() > ($_SESSION['doviz_cooldown'] ?? 0)) {
    unset($_SESSION['dolar']);
    unset($_SESSION['euro']);
    unset($_SESSION['doviz_cooldown']);

    $dolar = $euro = null;

    if (($value = CanliDoviz(0)) !== null) {
    $dolar = round($value, 2);
    $euro = round(CanliDoviz(1), 2);
    } elseif (($value = Altinkaynak(0)) !== null) {
    $dolar = round($value, 2);
    $euro = round(Altinkaynak(1), 2);
    } elseif (($value = TCMBDoviz(0)) !== null) {
    $dolar = round($value, 2);
    $euro = round(TCMBDoviz(3), 2);
    } elseif (($value = TruncGil("USD", "Alış")) !== null) {
    $dolar = round($value, 2);
    $euro = round(TruncGil("EUR", "Satış"), 2);
    }

    $_SESSION['doviz_cooldown'] = time() + 900;
    $_SESSION['dolar'] = $dolar;
    $_SESSION['euro'] = $euro;
    } else {
    $dolar = $_SESSION['dolar'] ?? null;
    $euro = $_SESSION['euro'] ?? null;
    }

    function kur($value, $value2)
    {
    if ($value2 == "EUR") {
    return $value . " EUR";
    } elseif ($value2 == "USD") {
    return "$" . $value;
    } elseif ($value2 == "TRY") {
    return $value . " TL";
    }

    return null;
    }

    ?>