Gönderen Konu: PHP Script Lisanslama Örneği  (Okunma sayısı 976 defa)

Çevrimdışı weptiryaki

  • Genel Moderatör
  • Trade Sayısı: (0)
  • *
  • İleti: 89
  • Karma +3/-0
  • Cinsiyet: Bay
  • Webmaister
    • Profili Görüntüle
PHP Script Lisanslama Örneği
« : 13 Mar 2013, 09:55:19 »
[h1]Bazı yerlerde bu örnekleri $_SERVER değişkenine göre yaptıklarını gördüğüm için içime daha çok sinen haliyle bir örnek yapmak istedim. İçime sinmeme sebebi kolay müdahele edilebilir olmasıdır. Siz kodları ne kadar kilitlerseniz kilitleyin
$_SERVER[' SERVER_NAME']=$_SERVER['HTTP_HOST']='www.cnylmz.net';
gibi bir satır kullanıldığında, lisans sisteminiz işlevini tamamen kaybeder. İçime sinmesi için, bu müdaheleyi olabildiğince zorlaştırmak gerekiyor.
Lisansın her dosyada çalıştırılması trafiği arttıracağı için hem bant limitini taşırabilir, hem de gereksiz yavaşlama sağlar. Tani aynı anda çalışan lisanslı betikler de sizin sunucunuza zorluk çıkarabilir. Böyle bir sorunun çözümünü de, ilk iki sayfadaki yöntemleri birleştirerek çözebiliriz.
İlk olarak unutmamız gereken, bilgiyi betik aracılığı ile kaydedeceğimiz için lisans.php dosyasına yazma izni vermemiz gerektiğidir. Bu işlemi yaptıktan sonra lisanslanacak betiğinizdeki her sayfa tarafından include edilen dosyanızın başına aşağıdaki kodları eklememiz gerekir.
Kod: [Seç]
<?php
require('lisans.php');
$lisans['site']=getenv('HTTP_HOST');
if (
substr($lisans['site'], 04) == "www.")
$lisans['site']=substr($lisans['site'],4);
$lisans['hash']=wordwrap(strtoupper(md5($lisans['site'].date('Ymd'))),4,'-',true);
if(
$lisans['hash']!==$lisans_anahtar)
{
$lisans_cevap=file_get_contents('http://www.cnylmz.net/kontrol.php?site='.$lisans['site']);
if(
$lisans_cevap!='ONAYLANDI')
die(
'Bu site lisanslı değil!!!');
 
// Onaylı ise dosyaya yazalım
$tut fopen('lisans.php',"w+");
@
fwrite($tut,'<?php
$lisans_anahtar="'
.wordwrap(strtoupper(md5($lisans['site'].date('Ymd'))),4,'-',true).'";
?>
');
fclose($tut);
}
?>
Bu kodları eklediğinizde sistem öncelikle lisans.php içideki lisans_anahtar değişkenini kontrol edecektir. date('Ymd') fonksiyonu ile YILaygün şeklinde bir ekleme yaptığımız için lisans anahtarı günden güne değişme ihtiyacı doğacaktır. Eğer lisans_anahtar değişkeni geçersiz ise, sizin cnylmz.net/kontrol.php yerine yazdığınız dosyanıza bağlanıp bir de orasını kontrol edecektir.
Kod: [Seç]
<?php
$lisansli_siteler
=array('cnylmz.net',
      
'seyranli.com',
      
'bilgisaray.net');
if(
in_array(urldecode($_GET['site']),$lisansli_siteler))
echo 
'ONAYLANDI';
else
echo 
'YASAK SİTE';
?>

şeklinde kaydettiğiniz kontrol.php eğer ONAYLANDI mesajını gönderirse, lisans sistemi o gün için bir key oluşturup bunu lisans.php dosyasına kaydedecektir.
Betiğin bundan sonraki çalışmalarında lisans_anahtar değişkeni doğru olacağı için, tekrar sizin sunucunuza bağlanma gereği duymayacaktır. Bir sonraki gün yine sunucunuza bir kez bağlanıp lisans.php dosyasını güncelleyecektir
Bu sayfadaki uygulama örneğini indirmek için
BURAYA TIKLAYIN.rar içinden çıkan sunucu.php sizin sitenize,ornek.php ve lisans.phpmüşterinizin sitesine yüklenecektir.[/h1]

Kaynak ve genis anlatim:http://www.cnylmz.net