• 01-09-2014, 21:22:10
    #1
    Reveloper
    Merhaba,

    CURL ile başka bir siteye veri yollayıp gelen sonucu almak istiyorum zaten true veya false diye sonuç veriyo sistem.
    En optimizesi nedir bu kodun? file_get_contents i fazla önermiyorlar sebebi nedir?

    Teşekkürler.
  • 01-09-2014, 23:12:23
    #2
    Burti adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    CURL ile başka bir siteye veri yollayıp gelen sonucu almak istiyorum zaten true veya false diye sonuç veriyo sistem.
    En optimizesi nedir bu kodun? file_get_contents i fazla önermiyorlar sebebi nedir?

    Teşekkürler.
    Cünkü curl file_get_contents'a bakarak daha hizlidir ayni sekilde curl proxy vs destekliyor ikiside sunuclarda acik olmasi gerekir yani curl ile daha iyi perfomans alirsiniz.
  • 01-09-2014, 23:54:39
    #3
    Developer
    Burti adlı üyeden alıntı: mesajı görüntüle
    Merhaba,

    CURL ile başka bir siteye veri yollayıp gelen sonucu almak istiyorum zaten true veya false diye sonuç veriyo sistem.
    En optimizesi nedir bu kodun? file_get_contents i fazla önermiyorlar sebebi nedir?

    Teşekkürler.
    niye file_get_contents degil curl = neden javascript değil jquery, modernizr

    "kullaniciadi" => "fastphp",
    "sifre" => "burti"

    kısmına göndereceğiniz parametre ve değerlerini yazabilirsiniz , postadresi kısını değiştirmeyi unutmayın.

    <?php
    $ch = curl_init();
    @curl_setopt_array($ch, array(
    CURLOPT_URL => "postadresi",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => array(
        "kullaniciadi" => "fastphp",
        "sifre" => "burti"
    )
    ));
    $veri = curl_exec($ch);
    curl_close($ch);
    
    if($veri=="true")
    {
        /* islem */
    }
    ?>
    Eskiden bu tarz konu açılınca anında cevap gelirdi, paylaşım bitmiş cidden.
  • 01-09-2014, 23:58:12
    #4
    Reveloper
    FastPHP adlı üyeden alıntı: mesajı görüntüle
    niye file_get_contents degil curl = neden javascript değil jquery, modernizr

    "kullaniciadi" => "fastphp",
    "sifre" => "burti"

    kısmına göndereceğiniz parametre ve değerlerini yazabilirsiniz , postadresi kısını değiştirmeyi unutmayın.

    <?php
    $ch = curl_init();
    @curl_setopt_array($ch, array(
    CURLOPT_URL => "postadresi",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => array(
        "kullaniciadi" => "fastphp",
        "sifre" => "burti"
    )
    ));
    $veri = curl_exec($ch);
    curl_close($ch);
    
    if($veri=="true")
    {
        /* islem */
    }
    ?>
    Eskiden bu tarz konu açılınca anında cevap gelirdi, paylaşım bitmiş cidden.
    Teşekkür ederim beklediğim şeydi Bu bölümün tınlanmamasının sebebi Ogün'den başka kimse değil. Ogün(@saintx) olduğu zaman herşeye yetişiyodu sadece yardım değil kendide bişeyler yapıyodu öğretiyordu insanlara. Moderasyonla görüşüp bu kategori için yeni bir moderatör lazım diyim ben. Yada ogünü silah zoruyla tekrar moderatör yapalım ).
  • 02-09-2014, 04:02:10
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    @Burti; PHP tarafında POST isteği göndermenin binbir türlü yolu var.

    #1: file_get_contents:
    <?php
    
    	$data = http_build_query(array('username' => 'saintx', 'password' => '123456789'));
    
    	$options = array('http' => array('method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $data));
    
    	$context = stream_context_create($options);
    
    	$url = 'https://www.facebook.com/login.php';
    
    	$response = file_get_contents($url, false, $context);
    
    	// print_r($response); /* {"status":true} */
    
    	$result = json_decode($response);
    
    	if ($result->status !== false)
    	{
    		// echo "Başarıyla giriş yapıldı.";
    	}
    #2 cURL:
    <?php
    
    	$data = array('username' => 'saintx', 'password' => '123456789');
    
    	$url = 'https://www.facebook.com/login.php';
    
    	$handle = curl_init();
    
    	curl_setopt_array(array(
    		CURLOPT_URL => $url,
    		CURLOPT_BINARYTRANSFER => true,
    		CURLOPT_RETURNTRANSFER => true,
    		CURLOPT_NOBODY => true,
    		CURLOPT_HEADER => false,
    		CURLOPT_POST => true,
    		CURLOPT_POSTFIELDS => true,
    	));
    
    	$response = curl_exec($handle);
    
    	curl_close($handle);
    
    	// print_r($response); /* {"status":true} */
    
    	$result = json_decode($response);
    
    	if ($result->status !== false)
    	{
    		// echo "Başarıyla giriş yapıldı.";
    	}
    #3 fsockopen:
    <?php
    
    	$useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Firefox/31.0';
    
    	$data = 'username=saintx&password=123456789';
    
    	$host = 'www.facebook.com';
    
    	$port = 443;
    
    	$timeout = 15;
    
    	$handle = fsockopen($host, $port, $errno, $errstr, $timeout);
    
    	$request = "POST /login.php HTTP/1.1\r\n";
    	$request .= "Host: {$host}\r\n";
    	$request .= "User-Agent: {$useragent}\r\n";
    	$request .= "Content-Type: application/x-www-form-urlencoded\r\n";
    	$request .= "Content-Length: " . strlen($data) . "\r\n";
    	$request .= "Connection: close\r\n\r\n";
    	$request .= $data . "\r\n\r\n";
    
    	fwrite($handle, $request);
    
    	$response = "";
    
    	while ( ! feof($handle))
    	{
    		$response .= fgets($handle, 4096);
    	}
    
    	fclose($handle);
    
    	// print_r($response); /* {"status":true} */
    
    	$result = json_decode($response);
    
    	if ($result->status !== false)
    	{
    		// echo "Başarıyla giriş yapıldı.";
    	}
    Burada en kolay yol cURL kullanmak oluyor tabi ki de hangisini kullanman gerektiğine sen karar vereceksin.