TurkProgrammers.NeT
Ana sayfa Ana Sayfa | Ana sayfanız yapın | Sık kullanılanlara ekle | Rss/Rdf Besleme| JavaScript
Bölümler
Arşiv
paz sa ça cu cum pa
1234
567891011
12131415161718
19202122232425
262728293031

Mailinizi ekleyin
Haberlere abone olun:

anket: Web Programcılığının Geleceğini nasıl görüyorsunuz
Web Programcılığının Geleceğini nasıl görüyorsunuz?
Önü Fazlası ile açık
ilerde yapacak web sitesi kalmayacak
Hazır sistemler işleri iyice bitirecek
Bugünden daha kötü olamaz
Anket sonuçları | Eski Anketler


email Arkadaşınızın maili | print Yazıcı versionu | comment Yanıtlar (0 Gönder)

Kullanıcıdan Habersiz Program Çalıştırma

by Mr. CanaWar on Temmuz 22,2007

image

POST Metodu kullanılarak farklı sunuculardaki(sitelerdeki) programlara sanki kullandıkları programmış gibi işlem yaptırmak mümkündür.

Örneğin:

1. Örnek : Sitenizdeki bir programın ne dosya adının nede nerede olduğunun bilinmesini istemiyorsunuz. Yani kısaca kullanıcı formu doldurduktan sonra gönder butonuna bastığında işlem aslında bir başka program üzerinden gerçekleşecek ama kullanıcımızın ekranında formu gönderen programın görsel yüzü olacak.

2. Örnek: Kullanıcıdan aldığınız bilgileri bir başka sitedeki bir programa göndererek işlemlerin orada gerçekleşmesini istiyorsunuz ,tabi kullanıcınızın ne bu siteyi nede işlem yapılan programın url'sini görmesini istemediğiniz durumlarda kullanabilirsiniz.

3. Örnek: Bir başka sitededki sanal pos programına kredi kartı bilgilerini göndermek isteyebilirsiniz. Gibi

Örnekler çoğaltılabilir.

İlk önce bir form hazırlabiliriz. Tabi amacınız ne ise ona göre bir form olacak.

--form.html--

Şimdi gizli adlı programımızı yazalım.

--gizli.php---

$dosya="gizlibilgi.txt";
$fp = fopen($dosya,"w");
fputs($fp,"Kişinin adı: ".$_POST[ad]." Kişinin soyadı: ".$_POST[soyad]." ");
fclose($fp);
print "işlem tamam";
?>

Yukarıdaki programımız esas bilgileri www.deneme.com/islemyapan.php programına bilgi göndereceğine göre, bu programıda yazalım.

Amacımız formdan gelen bilgileri bir dosyaya kaydetmek olsun.

--islemyapan.php--

if (!isset($_POST[ad]) and !isset($_POST[soyad])){
include("form.html");
print "Formu eksiksiz doldurunuz";
exit();
}

$site="www.deneme.com";
$port=80;

$bilgi .= "ad=".$_POST[ad]."&soyad=".$_POST[soyad];
$baslik .= "POST /islemyapan.php HTTP/1.1 ";
$baslik .= "Content-Type: application/x-www-form-urlencoded ";
$baslik .= "Connection: Close ";
$baslik .= "Host: $site ";
$baslik .= 'Content-Length: ' . strlen($bilgi) . " ";

$fp = fsockopen ($site, $port);
$oku= "";
if (!$fp) {
echo "http://$s)te adlı site ile erişim sağlanmadı. ";
} else {
fputs ($fp, $baslik . $bilgi);
while (!feof($fp)) {
$oku .= fgets ($fp, 1024);
}
fclose ($fp);
}
if (eregi("işlem tamam",$oku)){
echo "İşlem tamamlandı : Giriş yap";
}else{
die("İşlem başarılı olmadı bir hata var. Tekrar kontrol edin.");
}
?>

Bu programda yer alan "işlem tamam" cümlesi yukarıda yazdığımız gizli.php programı tarafından [PHP]eregi("işlem tamam",$oku)[/PHP] ile test edilecek. Şayet bilgiler islemyapan.php programı tarafından alındıysa bu cümle doğruluk kontrolünü sağlamış olcak.


Programı kendi bilgisayarlarında test etmek isteyenler www.deneme.com yerine örneğin localhost yazmaları gerekir.

Yukarıdaki işlemler bu durumda örneğin http://localhost/gizli.php şekinde gerçekleşecektir.


Sizde Apache2 örneğin windows'ta C: altında olduğunu varsayarak dosyaları koyacağınız yer.

C:Apache2htdocs|
|-- form.html
|-- gizli.php
|-- islemyapan.php

 Konulması gerekir.

Bu işlemleri yaptıktan sonra web tarayıcınızın adres satırına http://localhost/form.html yazıp programı test edin.

Dosyaların olduğu yerde (htdocs içinde) gizlibilgi.txt adlı bir dosyanın oluşması gerekir. Bu dosyayı açıp baktığınızda gönderdiğiniz bilgilerin kaydedildiğini görebilirsiniz.

http://localhost/form.html formu gönderdikten sonra adres satırına bakın. http://localhost/gizli.php şekinde olacaktır. Asıl işlemi yapan islemyapan.php programının adres satırında görünmediğini görebilirsiniz.

NOT:

Diyelim ki islemyapan.php programı C:Apache2htdocsornek Dizini altında ise bu durumda gizli.php programı içindeki :

$baslik .= "POST /islemyapan.php HTTP/1.1 ";

satırını şu şekilde düzenlemeniz gerekir.

$baslik .= "POST /ornek/islemyapan.php HTTP/1.1 ";


Adınız :

Soyadınız :


Perlci' ye teşekkürler..

228 Kere okundu

Bu makaleyi beyendinizmi ?

1 2 3 4 5 (Toplam 0 Oylar)
comment Yanıtlar (0 Gönder)
Çok okunanlar
En Çok Yorumlananlar
Yazarlar