• 10-04-2020, 10:58:07
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba Arkadaşlar.
    Bir projede kullanılmak üzere veri çekmem gerekmektedir.
    fakat veri çekeceğim sitede kullanıcı adı ve şifre kısmı olduğu için veri çekilmiyor. CURL ile kullanıcı adı ve şifre girdikten sonra veri çekebilir miyim?

    giriş kısmı malesef pop-up ve sadece bir kısmı çekmem gerekiyor.
  • 10-04-2020, 11:06:05
    #2
    Curl ile üye girişi yapıp cookie'leri kayıt edersin ardından veri çekerken o cookie'leri kullanırsın
  • 10-04-2020, 11:12:05
    #3
    Üyeliği durduruldu
    Merhaba. İlk önce yapmanız gereken login formunun post edidiği urlyi görmek. Ardından curl ile o url adresine kullanıcı adı ve parolayı post etmeniz gerekli. Bu işlemleri yaptığınızda karşı sitede sizin için bir session oluşur, bu session açık olduğu sürece oturumunuz açık demektir. Curl'de sessionun kapanmaması için CURLOPT_COOKIEJAR ve CURLOPT_COOKIEFILE özelliklere ihtiyacınız olacak. Biraz karışık oldu bir örnek vereyim.

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://site.com/login.php');curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "username=kullanici_adi&password=parola");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
    curl_setopt($ch, CURLOPT_COOKIEJAR, '');
    curl_setopt($ch, CURLOPT_COOKIEFILE, '');
    $response = curl_exec($ch);// ilk giriş işlemimizi tamamladık, karşı site bizi giriş yapmış olarak görüyor.
    curl_setopt($ch, CURLOPT_URL, 'http://site.com/veri');
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "");
    $sonuc = curl_exec($ch);
    // $sonuc değişkeni çekmek istediğimiz veri
  • 10-04-2020, 11:26:37
    #4
    <?php
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://web.arvento.com/signin.aspx');curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "username=1&password=1");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
    curl_setopt($ch, CURLOPT_COOKIEJAR, '');
    curl_setopt($ch, CURLOPT_COOKIEFILE, '');
    $response = curl_exec($ch);// ilk giriş işlemimizi tamamladık, karşı site bizi giriş yapmış olarak görüyor.
    curl_setopt($ch, CURLOPT_URL, 'https://web.arvento.com/maps');
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "");
    $sonuc = curl_exec($ch);
    // $sonuc değişkeni çekmek istediğimiz veri
    
    echo $ch
    ?>
    Kullanıcı adı ve şifreyi doğru girince kod çalışmıyor acaba nerede hatam var ?
    Teşekkür ederim.



    awoken adlı üyeden alıntı: mesajı görüntüle
    Merhaba. İlk önce yapmanız gereken login formunun post edidiği urlyi görmek. Ardından curl ile o url adresine kullanıcı adı ve parolayı post etmeniz gerekli. Bu işlemleri yaptığınızda karşı sitede sizin için bir session oluşur, bu session açık olduğu sürece oturumunuz açık demektir. Curl'de sessionun kapanmaması için CURLOPT_COOKIEJAR ve CURLOPT_COOKIEFILE özelliklere ihtiyacınız olacak. Biraz karışık oldu bir örnek vereyim.

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://site.com/login.php');curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "username=kullanici_adi&password=parola");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
    curl_setopt($ch, CURLOPT_COOKIEJAR, '');
    curl_setopt($ch, CURLOPT_COOKIEFILE, '');
    $response = curl_exec($ch);// ilk giriş işlemimizi tamamladık, karşı site bizi giriş yapmış olarak görüyor.
    curl_setopt($ch, CURLOPT_URL, 'http://site.com/veri');
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "");
    $sonuc = curl_exec($ch);
    // $sonuc değişkeni ​​​​çekmek istediğimiz veri
    Object moved to here.

    hatası alıyorum.
  • 10-04-2020, 11:48:12
    #5
    Üyeliği durduruldu
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://web.arvento.com/ajax/login.ashx?u=kullanici_adi&p1=parola');
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_COOKIESESSION, true);
    curl_setopt($ch, CURLOPT_COOKIEJAR, '');
    curl_setopt($ch, CURLOPT_COOKIEFILE, '');
    $response = curl_exec($ch);// ilk giriş işlemimizi tamamladık, karşı site bizi giriş yapmış olarak görüyor.
    curl_setopt($ch, CURLOPT_URL, 'https://web.arvento.com/maps');
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "");
    $sonuc = curl_exec($ch);
    // $sonuc değişkeni çekmek istediğimiz veri
     
    echo $sonuc;
    Böyle dener misiniz?
  • 10-04-2020, 11:55:54
    #6
    Çok teşekkür ederim.
    Giriş sağlamış oldum.