KategorilerPHP

PHP Yüzde Fonksiyonu ile Uzun Kodlardan Kurtulun

Bu gün bir videolu ders çekeyim dedim. 3 kere çektim aynı bölümü ses problemlerinden dolayı. İlk bölüm olduğundan hatalarım olabilir. Ek olaraktan hastayım sesimde de problemler olabilir. Yine ek olaraktan heyecanlıyım sürekli konuşmam sırasında hatalarım olmuş. Hepsinden dolayı tekrar özrü dilerim.

Video (760p)

[youtube=http://www.youtube.com/watch?v=wkcpxlcsqLc]

Kullanım

Kullanım için öncelikle yuzde.php diye bir sayfa oluşturup fonksiyonumuzu oluşturunuz (kaynak kodlardan yararlanabilirsiniz). Ardından aşağıdaki örneği inceleyiniz.

[php]

<?php
//Fonksiyon sayfasını çağıralım.
require("yuzde.php");

//200’ün %10’u kaçtır. Yazsın.
echo yuzde(200,10);
# Çıktı: 20

//200’ün %10’unu 200 ile farkı kaçtır bulsun ve yazsın.
echo yuzde(200,10,2);
# Çıktı: 180

//200’ün %10’unu 200 ile toplamı kaçtır bulsun ve yazsın.
echo yuzde(200,10,3);
# Çıktı: 220

//200’ün %10’unu 200 ile çarpımı kaçtır bulsun ve yazsın.
echo yuzde(200,10,4);
# Çıktı: 4000

//200’ün %10’unu 200 ile bölümü kaçtır bulsun ve yazsın.
echo yuzde(200,10,5);
# Çıktı: 10
?>

[/php]

Kaynak kodları

yuzde.php (ana fonksiyon burada bulunmakta)

[php]

<?php

error_reporting(0);
function yuzde($sayi, $yuzde_deger,$secenek){

$yuzdemiz = ($sayi * $yuzde_deger) / 100;
$fark = $sayi – $yuzdemiz;
$topla = $sayi + $yuzdemiz;
$carp = $sayi * $yuzdemiz;
$bol = $sayi / $yuzdemiz;

if($secenek == 1){
return $yuzdemiz;
}elseif($secenek == 2){
return $fark;
}elseif($secenek == 3){
return $topla;
}elseif($secenek == 4){
return $carp;
}elseif($secenek == 5){
return $bol;
}else{
return $yuzdemiz;
}
}
?>

[/php]

yuzde2.php (fonksiyonun başka sayfalara eklenebildiğini gösteren örnek)

[php]

<?php
require("yuzde.php");

echo yuzde(300,10,5);
?>

[/php]

KategorilerBilimselİnternetOyunlarPHPYazılımlar

Tahmin Makinası

Canım sıkıldı ve forumlarda dolaşırken buna benzer bir şeyler isteyen bir arkadaş gördüm. Bende yapayım dedim. İşte karşınızda dandirik olsa da tasarımı ve hızlılığı ile göze çarpan tahmin makinası !

Tahmin Makinası 2

Sistem 1 ile 100 arasında rastgele 3 sayı oluşturuyor. Siz de o sayıları tahmin etmeye çalışıyorsunuz.

Çok hızlı ve sayfayı yenilemeden rahatlıkla binlerce tahminde bulunup istediğiniz kadar kullanabilirsiniz. En sevdiğim özelliklerinden birisi de sayfayı yenilemeden POST yapması ve genişlet özelliği. Bakalım kaç tane tutturacaksınız?

Kaç Adet Yapacaksınız? http://evrimaltay.net/demo/tahmin.php
(Genişlet özelliğini kullanmayı unutmayın …)

KategorilerPHP

PHP KDV Hesaplama Fonksiyonu (KDV Dahil, Hariç)

Her zaman sorun olmuştur bu KDV Formülleri. En azından kolay yoldan bunu halletmek isteyen insanlar için baş ağrısı. Bu yüzden sizin için iki adet fonksiyon hazırladım.

Bu fonksiyonlardan biri tutarın KDV dahil halini hesaplarken, biri de tutarın KDV hariç halini hesaplıyor. Kullanımı da kurması da çok kolay.

Öncelikle size bir adet PHP dosyası lazım. Aşağıda vereceğim kodları PHP dosyasına eklemek daha kolay ve hızlı yöntemdir. Bu sayede fonksiyonları tek bir yerden kontrol edebilirsiniz.

kdv.php Kodları

<?php
function kdv_ekle($tutar,$oran){
  $kdv = $tutar * ($oran / 100);
  $ytutar = $tutar + $kdv;

  return $ytutar;

}

function kdv_cikar($tutar,$oran){

  $ytutar = $tutar / (1 + ($oran/100));

  return $ytutar;

}

?>

Kullanım

kdv.php dosyasını sayfanıza include ettikten sonra aşağıdaki iki fonksiyondan birini rahatlıkla kullanabileceğiz.

include için:

<?php include("kdv.php");?>

KDV Dahil

Bir tutarın KDV dahil halini hesaplamak için aşağıdaki fonksiyonu kullanın.

<?php kdv_ekle(tutar,kdv oranı); ?>

Örnek olarak; 100 TL’nin %10 KDV’li fiyatı 110 TL’dir ve aşağıdaki fonksiyonu kullandığımızda bize 110 TL’yi verecek.

<?php kdv_ekle(100,10); ?>

KDV Hariç

Yukarıdaki fonksiyonun tersini yapar, KDV hariç olarak hesaplar.

<?php kdv_cikar(tutar,kdv oranı); ?>

Örnek olarak yukarıda 100 TL’nin %10 KDV’li fiyatını 110 TL bulmuştuk. Şimdi 110 TL’nin %10 KDV’siz fiyatını bulalım.

<?php kdv_cikar(110,10); ?>

Kolay gelsin …

KategorilerPHP

[PHP] Reklamları Süreli ve Sıralı Olarak Gösterme, Ardından Yönlendirme

Bu yazımda sizin için kodladığım ve tahminime göre bir yerlerde bulamayacağınız bir reklam betiği. Bu reklam betiği sayesinde reklam yayın süresi, reklam limiti, reklamlar ve yönlendirilecek sayfayı girdikten sonra rahat ve güvenli bir şekilde reklamlarınız listeleniyor. Burada reklamları Session ile listeletiyoruz. Mantığı zaten kodlarda çözeceksiniz. Basit bir şey olarak kodladım fakat güzel bir şeye benzedi 🙂 Eğer dediğim şeyleri yapamadıysanız sayfanın sonunda sizin tüm dosyaları arşivledim, oradaki örneği inceleyebilirsiniz.

[php]

<?php

//Session’u başlattık
session_start();
//Hataları kapatıyoruz
error_reporting(0);

$adlimit = 4; //Reklam Limiti
$adrtime = 5; //Yönlendirme Zamanı
$adredaf = $_GET[‘r’]; //Yönlendirilme Sayfası
$ads = array("1. Reklamdasınız", "2. Reklamdasınız", "3. Reklamdasınız", "4. Reklamdasınız", "5. Reklamdasınız"); //Reklamlar

//Adsee adlı bir değişken oluşturup bunu Session Adsee ile eşitliyoruz
$adsee = $_SESSION[‘adsee’];

//Eğer adsee değişkenimiz boş ise ona 0 diyoruz
if(empty($adsee)){
$adsee = 0;
}

//Adsee değerine eş gelen reklamımızı yazdırıyoruz
echo $ads[$adsee];
//Sessionu ve Adsee değerini Arttırıyoruz
$adsee++;
$_SESSION[‘adsee’]++;

//Eğer adsee değeri limitimizi aşmıyorsa tekrar yönlendirme yapıyoruz
if ($adsee <= $adlimit){
echo ‘<meta HTTP-EQUIV="refresh" CONTENT="’.$adrtime.’;URL=ea1.php?r=’.$adredaf.’">’;
}else{
//Aşıyorsa Sessionu sıfırlayıp kişiyi istediğimiz sayfaya yönlendiriyoruz
unset($_SESSION[‘adsee’]);
echo ‘<meta HTTP-EQUIV="refresh" CONTENT="’.$adrtime.’;URL=’.$adredaf.’">’;
}

?>

[/php]

Burada girmeniz gereken değerler kodların en üstünde belirtilmiştir. Reklam değerlerini girmek için reklamları , (virgül) ile ayırmalısınız. Zaten örnekte de görüldüğü gibi reklamlar ” (çift tırnak) işaretlerinin arasında ve her bir reklam , (virgül) ile ayrılmış durumda.

Ek olarak not: PHP saymaya sıfırdan başladığı için siz reklam kısımına 8 reklam koyarsanız limit kısımına 7 yazmanız gerekmektedir. Çünkü 1. reklamınız PHP ye göre 0. reklamdır.

Nasıl Kurarım?

  1. Yukarıda verdiğim kodların üzerinde gerekli değişiklikleri yaptıktan sonra onları  ea1.php olarak kayıt edin.  Ve sitenizin ana dizinine atın.
  2. Ardından yönlendirme yapacağınız sayfanın başına aşağıdaki kodları ekleyin ve Yönlendirilecek sayfanızı değiştirin.

[php]

<?php

$EA_Redirect = "thanks.php"; // Yönlendirilecek Sayfa ( Geçerli sayfanın adı )
session_start();
if(empty($_SESSION[‘adsee’])){
Header(‘Location: ea1.php?r=’.$EA_Redirect);
exit();
}

?>

[/php]

Sormak istediğiniz her şeyi yorum yolu ile sorabilirsiniz. Yazımı biraz acele ile yazmak zorunda kaldım. Zaten bu aralar pek yazamıyorum. Kusura bakmayın.

Örnek kodları indirmek için: http://www.evrimaltay.net/URL/click.php?id=38

KategorilerPHP

[PHP] Dosya Yolunu Vermeden Dosya Paylaşımı

Merhaba, bu yazımda size dosyalarınızın kaynak yolunu vermeden dosyaları indirme yöntemini göstereceğim. Bu şekilde yapılan indirmelerde dosyayı indirme yolu olarak sizin PHP dosyanızın yolu verilecektir. Basit ama çok etkili bir yöntemdir ve bu sayede müzik / film / resim ve daha aklıma bile gelmeyen bir sürü dosya paylaşım veya satış sitelerinde online olarak indirmelerde dosyalarınızı korur, sadece o kişinin o dosyayı indirebilmesini sağlarsınız.

Bu günkü yazımda hem en sade halini, hem de Session ile güvenlikli bir indirmenin yolunu anlayacağız. Session sistemimizde kullanıcının bizim dosyayı indirmesini istediğimiz kullanıcı olup olmadığı ve  belirli bir indirme limiti aşıp aşmadığını test edeceğiz. İlk olarak en basit yolu gösteriyoruz. Burada değerini değiştirmeniz gereken iki değişken vardır. Zaten kodların açıklamalarında neden ve nasıl olduğu gayet net bir şekilde açıklanmıştır.

Sade Versiyon (Kodlar)

[php]
<?php
$DLPath = "Downloads/Secure/";
$DLFile = "File.zip";
header(‘Content-type: application/zip’);
header(‘Content-Disposition: attachment; filename="’. $DLFile .’"’);
readfile($DLPath. $DLFile .);
?>
[/php]

Sade Versiyon (Açıklamalar)

Kodların açıklamalarını aşağıda vereceğim.  Bu sayede daha iyi ve anlaşılır olacaklar.

$DLPath Bu kod ile dosyamızın gerçek yolunu belirtiyoruz. Burada dikkat etmeniz gereken şey dosyamızın adı ve uzantısı bu yolda geçmeyecek. Örnek kullanım: “Downloads/Secure/”

$DLFile Dosyamızın adı ve uzantısı. Dosya kullanıcının bilgisayarına inerken de bu isimle inecektir. (Fakat dosya yolu kullanıcıya gözükmeyecektir) Örnek Kullanım: “File.zip” Dosyanın Gerçek Yolu: “Downloads/Secure/File.zip”

header(‘Content-type: application/zip’); İndirilecek olan dosyanın formatı seçilir. Daha fazla format için tıklayın.

header(‘Content-Disposition: attachment; filename=”‘. $DLFile .'”‘); Sayfamızın HTML değil de bir dosya olduğunu belirtir.

readfile($DLPath. $DLFile .); Dosyamızı indirmemizi sağlayan fonksiyondur. Burada $DLPath ile $DLFile’ı birleştiriyoruz. Bu sayede readfile fonksiyonuna girdiğimiz değer: Downloads/Secure/File.zip olmaktadır.

Bu sayede dosyamızı yolunu başka kimseyle paylaşmadan indirmiş olduk. Şimdi gelelim daha gelişmişine. Aslında burada yapmamız gereken tek şey altta vereceğim kodları buradaki kodların üstüne eklemek olacak çünkü kodlarımızı ona göre yazacağım.

Gelişmiş Versiyon (Kodlar)

Burada alacağınız tüm kodları Sade Versiyonun hemen üstüne ekleyerek kullanabilirsiniz. Bu sayede sisteminizden dosya indirmek isteyenlerin belirli bir Session’a sahip olması ve indirme limitini aşmamış olması gerekmektedir. Bu sefer açıklamaları kodların içinde vereceğim. Çünkü bu sefer sadece if else deyimleriyle işlem yapacağım. Burada önemli olan ve değerini değiştirmeniz gereken sadece bir adet değişken var. O da indirme limitimizdir 🙂

[php]
<?php
//Sessionları başlatıyoruz. Eğer bu kod olmaz ise hiçbir session değerimiz çalışmaz.
session_start();
//İndirme limitimizi buradan belirliyoruz. İstediğiniz basamakta sayı girebilirsiniz. Yalnız değer sadece tamsayı olmalı !
$LIMIT = 5;
//Eğer kişinin dosyayı indirme yetkisini belirleyen session değeri boş ise hata yazdırıp exit(); fonksiyonu ile işlemi durduruyoruz.
if (empty($_SESSION[‘YETKI’])){
echo "Bu dosyayı indirmek için gerekli yetkiye sahip değilsiniz !";
exit();
}
//Eğer indirme adedimizi sayan session değeri boş ise onu 0’a eşitliyoruz ki sistemimiz işlemleri yaparken sorun yaşamasın.
if (empty($_SESSION[‘INDIRME’])){
$_SESSION[‘INDIRME’] = 0;
}
//İndirme adedimizi sayan session değeri belirlediğimiz limitten büyük veya o limiti aşıyor ise hata yazdırıp işlemi durduruyoruz.
if ($_SESSION[‘INDIRME’] >= $LIMIT){
echo "İndirme limitinizi aştınız. Bu dosyayı indiremezsiniz !";
exit();
}
//Tüm kontrollerden başarıyla geçildiyse indirme adedimizi bir arttırıyoruz ki kişinin dosyayı kaç kere indirdiğini sistem anlasın.
$_SESSION[‘INDIRME’] ++;
?>
[/php]

Kişilere Yetki Vermek

Kişilerin dosya indirmesini sağlamak için onlara yetki vermelisiniz. Bunun için aşağıdaki kodu session_start(); kodundan sonraki bir yere eklemelisiniz. Bu sistemimizde Yetki sessionunun içindeki değerin ne olduğuna bakmadık, sadece boş ise hata verdik (ki session açılmadıysa o her zaman boş olacaktır.)

[php]
<?php
$_SESSION[‘YETKI’] = "kullanıcının yetkisi bulunmaktadır";
?>
[/php]

Derli Toplu Kod

Evet, her şey bu kadardı, şimdi size kodların tümünü derli toplu bir vaziyette vereyim ki rahat bir şekilde kullanabilesiniz. Bu kodumuzda tüm kullanıcılara dosya indirebilmesi için gereken yetkiyi de otomatik olarak vereceğiz (yani üstteki kod aşağıdaki kodların arasında bulunmaktadır.).

[php]</pre>
<?php
//Sessionları başlatıyoruz. Eğer bu kod olmaz ise hiçbir session değerimiz çalışmaz.
session_start();
//Kullanıcıya yetkisini veriyoruz.
$_SESSION[‘YETKI’] = "kullanıcının yetkisi bulunmaktadır";
//İndirme limitimizi buradan belirliyoruz. İstediğiniz basamakta sayı girebilirsiniz. Yalnız değer sadece tamsayı olmalı !
$LIMIT = 5;
//Eğer kişinin dosyayı indirme yetkisini belirleyen session değeri boş ise hata yazdırıp exit(); fonksiyonu ile işlemi durduruyoruz.
if (empty($_SESSION[‘YETKI’])){
echo "Bu dosyayı indirmek için gerekli yetkiye sahip değilsiniz !";
exit();
}
//Eğer indirme adedimizi sayan session değeri boş ise onu 0’a eşitliyoruz ki sistemimiz işlemleri yaparken sorun yaşamasın.
if (empty($_SESSION[‘INDIRME’])){
$_SESSION[‘INDIRME’] = 0;
}
//İndirme adedimizi sayan session değeri belirlediğimiz limitten büyük veya o limiti aşıyor ise hata yazdırıp işlemi durduruyoruz.
if ($_SESSION[‘INDIRME’] >= $LIMIT){
echo "İndirme limitinizi aştınız. Bu dosyayı indiremezsiniz !";
exit();
}
//Tüm kontrollerden başarıyla geçildiyse indirme adedimizi bir arttırıyoruz ki kişinin dosyayı kaç kere indirdiğini sistem anlasın.
$_SESSION[‘INDIRME’] ++;
?>
<?php
$DLPath = "Downloads/Secure/";
$DLFile = "File.zip";
header(‘Content-type: application/zip’);
header(‘Content-Disposition: attachment; filename="’. $DLFile .’"’);
readfile($DLPath. $DLFile );
?>
<pre>
[/php]

Dosyalar Nasıl Gözükür?

İndirme Sayfası - Büyütmek için tıklayın

Önemli Duyuru

Bazı sunucular benim deyimimle titiz olduklarından hata verebilirler. Bunun olmaması için sayfanın en üstüne (< ?php tagından hemen sonra) ob_start(); kodunu sayfanın en altına (?> tagının hemen üstüne) ob_end_flush(); komutunu ekleyin. Ve ek olarak indirme işleminiz olan sayfada önceden hiçbir yazı vb. şeyin olmaması gerekmekte html kodları da dahil. Yani kaynak kodlarınız tamamiyle boş olmalıdır.

Ve Yazının Sonu

Evet, tüm kodlar bu kadardı. Kodların tamamını test etmedim ama çalışacağına eminim. Yine de bir sorun çıkarsa bana alttan yorum yolu ile veya iletişim bölümünden bildirirseniz hemen düzeltirim.

Umarım yararlı olmuştur. Eğer beğendiyseniz bu yazıyı üstteki butonlardan paylaşabilir veya bize Destek Ver‘ebilirsiniz. Her türlü soru ve sorununuzda yorum atmayı unutmayın, sağlıcakla kalın …

KategorilerPHP

PHP Kaliteli Rastgele Soru Scripti

Merhabalar, merhabalar … Yine yeni bir yazım ve scriptim ile sizlerleyim. Bu gün kodladığım scriptim ise başlıktan da anlaşılacağı gibi sizin belirlediğiniz soruları şık bir tasarımla karşıdaki bireye sormak ve ardından cevabını kontrol etmekten ibaret. Umarım beğenirsiniz. Ve her zaman ki gibi;

Özellikler

  • Sınırsız soru ve cevap ekleme üstelik bunu veritabanı kullanmadan, sadece bir PHP dosyasının içinden yapabilme.
  • Ziyaretçilerinize rastgele bir soru sorulur ve doğru cevap alınmadan geçişine izin verilmez.
  • Soruyu doğru bilen bir ziyaretçiye o istemedikçe bir daha soru sorulmaz.
  • Şık EA Bigblack tasarımı …
  • Cevaba göre renk değiştiren tasarım. (Yanlış cevap da kırmızı, Doğru cevap da yeşil renk alıyor)
  • Ekstra güvenlik …

Sistemimiz kaliteli ve güvenliklidir. Şu anda özel karakter kullanabiliyoruz ama üşenmesem onları da engellerdik 🙂 Rastgele soru oluşturma konusunda da sistemimiz rastgele bir sayı oluşturuyor ve o sayıya göre da PHP dosyamızdan soru çağırıyoruz.

Sistemdeki Tüm Soruların Cevapları

  • Sitemizin adı nedir? – Cevap: evrimaltay.net
  • Cumhuriyet kaç yılında ilan edildi ?  – Cevap: 1923
  • Bu sistem hangi dil ile kodlandı? – Cevap: php
  • ‘100 – 100 + 100’ işleminin sonucu nedir ?  – Cevap: 100

Eğer bu sistemi kullanmak istiyorsanız bana iletişim sayfamdan ulaşabilirsiniz.

Sistem bu kadar.Ekran görüntüsü vermemize hiç gerek yok, sizi demo ile başbaşa bırakayım.

Demo İçin: TIKLA