• 19-04-2021, 23:31:28
    #1
    Merhaba, api kodladım bu api $_GET den gelen kullanıcı adına ait avatarı header("Content-Type: image/png"); şeklinde gösteriyor (yani kodu resim olarak algılatma) Eğer kullanıcı adı veritabanında kayıtlı değilse resim olarak farklı bir url göstermesini istiyorum. Bunu nasıl yapabilirim (Not : Ancak yine kodu resim olarak göstermeli) PDO ile yapıyorum işlemi, kod aşağıdadır. Yardımcı olur musunuz?

    <?php
    try {
        $baglanti = new PDO("mysql:host=localhost;dbname=SANSÜR", "SANSÜR", "SANSÜR");
        $baglanti->exec("SET NAMES utf8");
        $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sorgu = $baglanti->query("SELECT * FROM users WHERE username = '".htmlspecialchars($_GET["username"])."'");
        $cikti = $sorgu->fetch(PDO::FETCH_ASSOC);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://cdn.SANSÜR.com/".$cikti["avatar"]);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4389.208 Safari/537.36");
        $resim = curl_exec($ch);
        curl_close($ch);
        header("Content-Type: image/png");
        echo $resim;
        exit;
    } catch (PDOException $e) {
        die($e->getMessage());
    }
    $baglanti = null;
    ?>
    Şimdiden teşekkür ederim
  • 19-04-2021, 23:34:23
    #2
    değer döndür if else ile true bununu bunu false bununu
  • 19-04-2021, 23:37:05
    #3
    Ladavaz adlı üyeden alıntı: mesajı görüntüle
    değer döndür if else ile true bununu bunu false bununu
    işte if duplicate olayını nasıl yapabilirim bu kod üzerinde hani content resim olduğu için normal echo tarzı olmuyor, rica etsem kod üzerinde yardımcı olur musunuz?
  • 20-04-2021, 11:34:25
    #4
    @metehandemir; Hocam rica etsem bu konuda da yardımcı olabilir misiniz?
  • 20-04-2021, 21:58:09
    #5
    İf($sonuc != null){
    $cikti = $sorgu->fetch(PDO::FETCH_ASSOC);
    }else {
    $cikti["avatar"] = senin brlirlediğin resim adresi;
    }
    Bunu $sorgu nun hemen altına koyup bi denermisiniz
  • 20-04-2021, 22:01:15
    #6
    WRaNGLeR adlı üyeden alıntı: mesajı görüntüle
    İf($sonuc != null){
    $cikti = $sorgu->fetch(PDO::FETCH_ASSOC);
    }else {
    $cikti["avatar"] = senin brlirlediğin resim adresi;
    }
    Bunu $sonucun hemen altına koyup bi denermisiniz
    Teşekkürler

    Peki tam olarak kod da nereye koymam gerekiyor ?

    Kod :
    <?php
    try {
        $baglanti = new PDO("mysql:host=localhost;dbname=SANSÜR", "SANSÜR", "SANSÜR");
        $baglanti->exec("SET NAMES utf8");
        $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sorgu = $baglanti->query("SELECT * FROM wo_users WHERE username = '".htmlspecialchars($_GET["username"])."'");
        $cikti = $sorgu->fetch(PDO::FETCH_ASSOC);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://cdn.SANSÜR.com/".$cikti["avatar"]);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
        curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4389.208 Safari/537.36");
        $resim = curl_exec($ch);
        curl_close($ch);
        header("Content-Type: image/png");
        echo $resim;
        exit;
    } catch (PDOException $e) {
        die($e->getMessage());
    }
    $baglanti = null;
    ?>
  • 20-04-2021, 23:20:09
    #7
    $cikti = $sorgu... nun hemen üstüne 12. Satır ile 13. Satırın ortasına
  • 21-04-2021, 11:18:22
    #8
    WRaNGLeR adlı üyeden alıntı: mesajı görüntüle
    $cikti = $sorgu... nun hemen üstüne 12. Satır ile 13. Satırın ortasına
    Olmadı hocam, nasıl yapabiliriz?
  • 21-04-2021, 14:10:09
    #9
    Ne hata verdiğini yazarsan ona göre bakalım şuan hatanın ne olduğunu bilemiyorum