• 28-08-2022, 00:56:00
    #1
    Merhaba arkadaşlar. Öncelikle iyi akşamlar dilerim.

    Yapmış olduğum basit bir projede kodların hepsi hazır ve sorunsuzca çalışıyor. Sadece bir yerde problem yaşıyorum. Api ile sisteme sadece http post ile login yaptığımda giriş yapıyor.

    <form action="https://xxxxx.xxx/api/login" method="post">
             <input type="text" placeholder="Kullanici Adi" name="username">
             <input type="text" placeholder="Sifre" name="password">
             <input type="submit" value="Login">
    </form>
    Bu şekilde form üzerinden sorunsuz bir şekilde login oluyor. Ama ben hazırladığım php dosyasına:

    <?php
    
    $post = [
        'username' => 'username',
        'password' => 'password,
    ];
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://xxxxx.xxx/api/login ');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
    $response = curl_exec($ch);
    var_export($response);
    
    ?>
    bu kodları ekliyorum. Sayfaya gittiğimde kullandığım form ile aynı sonucu veriyor sadece başında ve sonunda (') işareti oluyor. Ardından diğer çalışma sayfamdan işlem yapmaya çalıştığımda login olmamış oluyor. Form ile işlem yaptığımda login yapmış oluyor. Amacım kullanıcı adını ve şifreyi saklı tutarak ve kendim kaydederek ilgili sayfanın linkini göstermeden login yapmasını sağlamak. Yardımcı olabilir misiniz?
  • 28-08-2022, 01:00:18
    #2
    Login olduğu zaman sunucudan dönen cookie, token gibi verileri diğer işlem yaptığınız kısımlarda da request içerisinde göndermeniz gerekiyor.
  • 28-08-2022, 01:05:27
    #3
    aliosmanyuksel adlı üyeden alıntı: mesajı görüntüle
    Login olduğu zaman sunucudan dönen cookie, token gibi verileri diğer işlem yaptığınız kısımlarda da request içerisinde göndermeniz gerekiyor.
    Öncelikle verdiğiniz yanıt için teşekkür ederim.

    Sunucudan dönen sayfada token ya da cookie verisi bulunmuyor. Her iki yöntem ile login yaptığımda sadece login yapılan hesap ile alakalı sonuç veriyor.

    Bu form ile aldığım sonuç:

    {"error":"success","login":"username","user":XXXXXX,"account_type":"premium","premium_days_left":"XX"}
    Bu da php dosyası ile aldığım sonuç:

    '{"error":"success","login":"username","user":XXXXXX,"account_type":"premium","premium_days_left":"XX"}'
  • 28-08-2022, 01:24:52
    #4
    Curl isteğine cookie eklemelisiniz.

    curl_setopt($ch, CURLOPT_COOKIEJAR, "/path/to/cookie.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE, "/path/to/cookie.txt");
    curl_setopt($ch, CURLOPT_COOKIE, "cookiename=0");
  • 28-08-2022, 01:41:45
    #5
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    Curl isteğine cookie eklemelisiniz.

    curl_setopt($ch, CURLOPT_COOKIEJAR, "/path/to/cookie.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE, "/path/to/cookie.txt");
    curl_setopt($ch, CURLOPT_COOKIE, "cookiename=0");
    Teşekkür ederim hocam.

    Bu da çalışmadı. Cookie verilerini kendim txt dosyasına ekleyip öyle de yapılandırdım yine çalışmadı. Sanırım kendi adresi üzerinden login olması gerekiyor. Benim oluşturduğum php dosyasına kendi adresinden login yapmış gibi sonuç veriyor ama diğer sayfada işlem yapınca işe yaramıyor. Destek ekibine mail attım. Daha önce de birkaç sorunum için mail atmıştım yardımcı olmuşlardı. Bir de onlar dönüş yapana kadar buradan çözüm bulabilir miyim diye umut ettim. Bakalım artık.
  • 28-08-2022, 11:09:31
    #6
    Destek ekibinden yanıt geldi.

    Php dosyası ile login yaptığımda kullandığım hosting hizmetinin sunucu ip adresine izin veriyor. Ama form ile login yaptığımda benim ip adresime izin veriyor. Sunucu ip adresi ile erişim sağlamam gerektiğini yazmışlar. Kodlarda bir hata yokmuş.