curl_init ile POST İstekleri: Kısa Bir Rehber

PHP'nin curl_init() ile POST isteği atılabilir. Güvenli iletişim için farklı veri formatları ve başlıklar ayarlanabilir.

Efe Demir

Efe Demir

5 June 2025

curl_init ile POST İstekleri: Kısa Bir Rehber

“Client for URLs” kısaltması olan cURL yazılım uygulaması, geliştiricilerin veri aktarımlarını yönetmeleri için kapsamlı bir işlevsellik paketi sunar. İki farklı modda çalışır: temel etkileşimler için kullanıcı dostu bir komut satırı arayüzü ve programlama projelerine sorunsuz bir şekilde entegre edilebilen güçlü bir kitaplık.

💡
Kendinize en iyi ve en esnek API geliştirme aracını edinin - Apidog! Tüm API yaşam döngüsü için eksiksiz araçlarla birlikte, tek bir uygulama içinde API'leri oluşturabilir, test edebilir, taklit edebilir ve belgeleyebilirsiniz.

Apidog'un sizin gibi geliştiricilere neler sunabileceği hakkında daha fazla bilgi edinmek için aşağıdaki düğmeye tıklayın!
button

curl_init()'in Resmi Tanımı

Resmi PHP web sitesine göre, curl_init işlevi bir cURL oturumu başlatır ve curl_setopt(), curl_exec() ve curl_close() işlevleriyle kullanılmak üzere bir cURL tanıtıcısı döndürür.

İlgili Parametreler

url

Bir URL sağlarsanız, CURLOPT_URL seçeneği değerine ayarlanır. Bu seçeneği ayrıca curl_setopt() işlevini kullanarak manuel olarak da ayarlayabilirsiniz.

Ancak, open_basedir ayarlanmışsa, file protokolünün cURL'ün kendisi tarafından devre dışı bırakıldığını unutmayın.

Dönüş Değerleri

curl_init() işlevi başarı durumunda bir cURL tanıtıcısı ve hatalarda false döndürür.

POST İsteği Nedir?

Web iletişimi bağlamında, Hipermetin Aktarım Protokolü (HTTP), veri alışverişinin temelini oluşturur. HTTP içinde kullanılan önemli bir yöntem, POST isteğidir ve özellikle bir web sunucusuna veri aktarımı için tasarlanmıştır. Bu belge, POST isteğinin işlevini açıklayan ve onu muadili olan GET isteğiyle karşılaştıran POST isteğinin inceliklerini inceler.

POST İsteklerinin Temel Özellikleri

Veri İletimi

POST istekleri, özellikle bir web sunucusuna veri göndermek için tasarlanmıştır. Bu veriler, yeni kaynaklar oluşturmak, mevcut bilgileri güncellemek veya verileri silmek için kullanılabilir.

Veri Yerleşimi

POST istekleri, verileri URL'nin içinde dahil etmek yerine istek gövdesinde gönderir. Bu ayrım, özellikle parolalar veya kredi kartı bilgileri gibi URL'de görünmeyen hassas bilgiler için güvenliği artırır.

Durum Değiştirme

POST istekleri tipik olarak sunucu tarafında bir değişiklikle sonuçlanır. Bu, yeni bir kullanıcı hesabı oluşturmayı, bir dosya yüklemeyi, bir alışveriş sepetine yeni bir ürün eklemeyi veya bir yorumu silmeyi içerebilir.

Önbelleğe Alınamaz

POST istekleri verileri değiştirdiğinden, web tarayıcıları tipik olarak bunları önbelleğe almaz. Bu, en son bilgilerin her zaman sunucuya gönderilmesini sağlar ve eski verilerin kullanılmasını engeller.

curl_init() POST İsteklerinin Kod Örnekleri

curl_init() işleviyle POST istekleri yapmak isterseniz başvurabileceğiniz bazı PHP kodlama örnekleri şunlardır.

Örnek 1 - Basit Metin Verileri Gönderme

Bu örnek, bir oturum açma komut dosyasına temel bir kullanıcı adı ve parola gönderir.

<?php

$url = "https://www.example.com/login.php";
$username = "your_username";
$password = "your_password";

$data = array(
  "username" => $username,
  "password" => $password
);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);  // İsteği POST'a ayarla
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));  // POST verilerini ayarla
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // Yanıtı döndür

$response = curl_exec($ch);

curl_close($ch);

if($response) {
  echo "Giriş başarılı!";
} else {
  echo "Hata: " . curl_error($ch);
}

?>

Kod açıklaması:

  1. Hedef URL'yi, kullanıcı adını ve parolayı tanımlarız.
  2. Kullanıcı adını ve parolayı içeren bir $data dizisi oluştururuz.
  3. curl_init($url) ile curl tanıtıcısını başlatırız.
  4. curl_setopt($ch, CURLOPT_POST, 1) kullanarak istek yöntemini POST olarak ayarlarız.
  5. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)) kullanarak POST verilerini ayarlarız. http_build_query, veri dizisini URL kodlu bir dizeye dönüştürür.
  6. Yanıtı doğrudan yazdırmak yerine yakalamak için CURLOPT_RETURNTRANSFER'ı 1 olarak ayarlarız.
  7. curl_exec($ch) ile isteği yürütür ve yanıtı $response'da saklarız.
  8. curl_close($ch) ile curl tanıtıcısını kapatırız.
  9. Son olarak, yanıtın var olup olmadığını kontrol eder ve bir başarı mesajı veya hata görüntüleriz.

Örnek 2 - JSON Verileri Gönderme

Bu örnek, bir kayıt komut dosyasına kullanıcı bilgilerini içeren bir JSON nesnesi gönderir.

<?php

$url = "https://www.example.com/register.php";

$user_data = array(
  "name" => "John Doe",
  "email" => "john.doe@example.com",
  "password" => "your_password"
);

$data_json = json_encode($user_data);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);  // İsteği POST'a ayarla
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);  // POST verilerini JSON olarak ayarla
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // Yanıtı döndür

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/json',   // İçerik türünü JSON olarak ayarla
));

$response = curl_exec($ch);

curl_close($ch);

if($response) {
  echo "Kayıt başarılı!";
} else {
  echo "Hata: " . curl_error($ch);
}

?>

Kod açıklaması:

  1. Hedef URL'yi ve kullanıcı verileri dizisini tanımlarız.
  2. json_encode kullanarak kullanıcı verilerini bir JSON dizesine dönüştürürüz.
  3. Curl tanıtıcısını başlatır ve istek yöntemini POST olarak ayarlarız.
  4. curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json) kullanarak POST verilerini ayarlarız.
  5. Yanıtı yakalamak için CURLOPT_RETURNTRANSFER'ı 1 olarak ayarlarız.
  6. Sunucuya verilerin JSON formatında olduğunu bildirmek için özel bir başlık Content-Type: application/json ayarlarız.
  7. İsteği yürütür ve önceki örnekte olduğu gibi curl tanıtıcısını kapatırız.
  8. Son olarak, bir yanıtı kontrol eder ve bir başarı mesajı veya hata görüntüleriz.

Örnek 3 - Özel Başlıklar Ayarlama ve Yönlendirmeleri Takip Etme

Bu örnek, özel başlıklarla bir POST isteği gönderir ve yönlendirmeleri takip eder.

<?php

$url = "https://www.example.com/login.php";

$data = array(
  "username" => "your_username",
  "password" => "your_password"
);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);  // İsteği POST'a ayarla
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  // Yanıtı döndür

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  'Authorization: Bearer YOUR_API_KEY',  // Özel başlık ayarla
));

// Yönlendirmeleri 3 defaya kadar takip et
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);

$response = curl_exec($ch);

curl_close($ch);

if($response) {
  echo "Giriş başarılı!";
} else {
  echo "Hata: " . curl_error($ch);
}

?>

Kod açıklaması:

  1. Giriş URL'sini ve kullanıcı verilerini tanımlarız.
  2. Önceki gibi curl tanıtıcısını ve POST isteğini ayarlarız.
  3. CURLOPT_HTTPHEADER kullanarak bir yetkilendirme belirteciyle özel bir başlık oluştururuz.
  4. CURLOPT_FOLLOWLOCATION ile yönlendirmeleri takip etmeyi etkinleştirir ve CURLOPT_MAXREDIRS ile 3 ile sınırlarız.

Unutulması Gereken Not

Lütfen yukarıdaki kod örneklerinin basitleştirildiğini ve uygulamanızın ihtiyaçlarına uyacak şekilde daha fazla değişiklik gerektireceğini unutmayın, bu nedenle bunları IDE'lerinize kopyalayıp yapıştırmayın.

Resmi belgeler için şuraya göz atabilirsiniz: https://www.php.net/manual/en/book.curl.php

Apidog - cURL Komutlarını Kolaylıkla İçe Aktarın

Apidog, kullanıcılara tüm API yaşam döngüsü için gerekli tüm araçları sağlayan gelişmiş bir API geliştirme platformudur. Apidog ile API'leri tek bir uygulama içinde oluşturabilir, hata ayıklayabilir, taklit edebilir ve belgeleyebilirsiniz.

apidog specifications
button

cURL komutlarını Apidog'a nasıl içe aktarabileceğinize bir göz atalım!

cURL Komutlarını Apidog'a Zahmetsizce İçe Aktarın

apidog import curl

Apidog, cURL komutlarını Apidog'a içe aktarmak isteyen kullanıcıları destekler. Boş bir projede, Apidog penceresinin sol üst kısmındaki mor + düğmesine tıklayın ve cURL İçe Aktar'ı seçin.

stripe curl code sample

cURL komutunu ekranınızda görüntülenen kutuya kopyalayıp yapıştırın.

curl code import success

Başarılı olursa, cURL komutunu bir API isteği biçiminde görüntüleyebilmelisiniz.

button

Apidog ile PHP Kodu Oluşturun

PHP programlama dilinde daha önce kodlama deneyiminiz yoksa, korkmayın! Apidog, geliştiricilere çeşitli diller için bir musluk sağlayan bir kod oluşturma özelliğine sahiptir!

apidog generate client code

İlk olarak, herhangi bir API veya istekte </> Kod Oluştur düğmesini bulun ve açılır listeden İstemci Kodu Oluştur'u seçin.

apidog generate php code

Ardından, PHP'yi seçin ve cURL bölümünü bulun. Artık cURL için oluşturulan kodu görmelisiniz. Tek yapmanız gereken, onu IDE'nize (Entegre Geliştirme Ortamı) kopyalayıp yapıştırmak ve uygulamanızı geliştirmeye devam etmektir.

button

Sonuç

curl_init() ile POST isteklerinde ustalaşmak, geliştiriciler için güçlü bir aracın kilidini açar. Web sunucularına veri göndermenizi sağlar ve kullanıcı hesapları oluşturma, dosya yükleme ve form gönderme gibi eylemleri etkinleştirir. POST isteklerinin temel kavramlarını ve curl_init()'in işlevlerini anlayarak, çeşitli web etkileşimleri için özel çözümler oluşturabilirsiniz.

Unutmayın, curl_init(), farklı formatlarda veri göndermenize, özel başlıklar ayarlamanıza ve dosya yüklemeleri ve yönlendirmeler gibi senaryoları işlemenize olanak tanıyan esnek bir yaklaşım sunar. Bu yeni bilgiyle, web uygulamalarınızın yeteneklerini geliştirmek için güvenle POST isteklerinden yararlanabilirsiniz.

Explore more

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Fathom-R1-14B: Hindistan'dan Gelişmiş Yapay Zeka Muhakeme Modeli

Yapay zeka hızla gelişiyor. FractalAIResearch/Fathom-R1-14B, 14.8 milyar parametreyle matematik ve genel akıl yürütmede başarılı.

5 June 2025

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code: İşletmeler için En Özelleştirilebilir Yapay Zeka Destekli Kodlama Asistanı

Mistral Code'u keşfedin: Kurumsal kullanıma özel, en özelleştirilebilir yapay zeka destekli kodlama asistanı.

5 June 2025

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code'un 2025'te Yapay Zeka Kodlamasını Nasıl Dönüştürdüğü

Claude Code, 2025'te yapay zeka destekli kodlamayı nasıl devrimleştiriyor? Özelliklerini, kullanımını ve Windsurf kısıtlamalarından sonra neden popüler olduğunu öğrenin. Geliştiriciler için okunması gereken!

5 June 2025

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin