PHP kullanarak başka sitedeki form elemanına verileri post etme ve post işlemi sonucunda geriye dönen verileri elde etme sürecinin nasıl yapıldığını göreceğiz.
PHP başka siteye veri gönderme işlemi cURL gibi başka yöntemlerle de yapılabilir ancak biz bu örnekte PHP ile başka siteden veri çekme işlemi için de kullanılabilen file_get_contents fonksiyonu ile yapıyor olacağız.
Lafı fazla uzatmadan nasıl yapılabildiğini görelim.
Başka sitedeki formda ′kullanici_eposta′ ve ′kullanici_sifre′ name özellikli text tipinde input elemanlarının olduğunu düşünelim. Bunun için bir dizi oluşturuyoruz ve bu alanlara yazılması gereken değerleri belirtiyoruz.
$form_degerleri = array(
'kullanici_eposta' => '[email protected]',
'kullanici_sifre' => '123456789'
);
Şimdi bu verileri karşı siteye POST edebilmek için uygun formata dönüştürüp post işlemi için gerekli ayarlamaları yapmamız gerekiyor.
$postVeri = http_build_query($form_degerleri);
$ayarlar = array('http' => array('method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $postVeri));
$formAyar = stream_context_create($ayarlar);
Verileri post edeceğimiz sayfanın tam URL adresini bir değişkene atıyoruz.
$url = 'https://orneksiteadresi.com/sayfalar?sayfa=giris';
Ardından file_get_contents fonksiyonu ile belirtilen sayfaya POST işlemi gerçekleştiriliyor ve işlem sonucunda geriye dönen sonucu elde ediyoruz. Bu sonucu bir değişkene atıyoruz ve ekrana yazdırıyoruz.
$sonuc = file_get_contents($url, false, $formAyar);
echo $sonuc;
File_get_contents fonksiyonu kullanarak PHP başka siteye veri gönderme işlemi için gerekli kodların tam hali aşağıdaki gibidir.
//Form sayfasında form elemanlarının name özellikleri ve bu alanlara girilecek veriler
$form_degerleri = array(
'kullanici_eposta' => '[email protected]',
'kullanici_sifre' => '123456789'
);
//Veriler POST edilebilmesi için uygun formata dönüştürülüyor ve form POST işlemi için gerekli ayarlamalar yapılıyor
$postVeri = http_build_query($form_degerleri);
$ayarlar = array('http' => array('method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $postVeri));
$formAyar = stream_context_create($ayarlar);
$url = 'https://orneksiteadresi.com/sayfalar?sayfa=giris'; //Post edilecek form sayfası tam URL adresi
$sonuc = file_get_contents($url, false, $formAyar); //Istenilen sayfada POST işlemi yapılıp, işlem sonucu ekrana basılan sayfanın içeriği elde ediliyor
echo $sonuc; //Elde edilen tüm veriler yazdırılıyor