|
Yazan
|
Konu: $_GET kullanımı (Okunma Sayısı 1375 defa)
|
PeSSivite
PHP Öğrencisi
Offline
Mesaj Sayısı: 99
|
Arkadaşlar bir download scripti için şu kodları kullanıyorum; print "<a href=\"?anakat=$anakat[id]&altkat=$altkat[id]&dosya=$dosya[id]\">$dosya[adi]</a>";
Bu şekilde sql den verilerimi alıp linklerimi oluşturuyorum.Hatta bunu while ile yazdırıyodum.Ne kadar varsa yazıyor.Burda problem yok. Fakat problem şu ; bu link url de şu şekilde çıkıyor; index.php?anakat=1&altkat=3&dosya=33 gibi çıkıyor.Peki url de bu yazınca sadece istediğim dosyanın özelliklerini göster nasıl diyebilirim. Bu linkte artık switch ve case den bahzedemeyiz.İşte bu yüzden kilitlendim  Sanırım $_GET leri kullanıcaz fakat if ile mi kullanmalıyım nasıl yapabilirim bir örnekle yazarsanız sevinirim.. Teşekkürler..
|
|
|
|
|
Logged
|
Bildiğini yazmayan,Bilmediğini sormayan adam ilerleyemez...
'PeSSivite'
|
|
|
PeSSivite
PHP Öğrencisi
Offline
Mesaj Sayısı: 99
|
Arkadaşlar fikirlerinizi esirgemeyin. Anladım anliycam öyle bir yerdeyim yani tutun elimden 
|
|
|
|
|
Logged
|
Bildiğini yazmayan,Bilmediğini sormayan adam ilerleyemez...
'PeSSivite'
|
|
|
shapcy
Mustafa Şapçılı
Admin
Offline
Mesaj Sayısı: 811
PHP Coding...
|
Tablo yapılarını yazmadığın için, nasıl bunları bağladığını bilmediğimden tam anlatamayacağım ama sorgularken veritabanını WHERE dosya=$_GET[$dosya] and altkat=$_GET[$altkat] gibi. Umarım mantığı anlatabilmişimdir. Ama bundan önce bir filtreleme yapman lazım. Yoksa çok güzel bi güvenlik açığı olur 
|
|
|
|
|
Logged
|
|
|
|
PeSSivite
PHP Öğrencisi
Offline
Mesaj Sayısı: 99
|
Tablolarım bunlar ;
anakategori,altkategori,dosyalar
Peki bu şekildeki sorgu satırını sayfanın herhangi bir yerinde mi yazdıracağım yoksa 'url de şunlar şunlar yazıyorsa sorguyu çalıştır' şeklinde mi olacak ?
Teşekkürler ilgin için.
|
|
|
|
|
Logged
|
Bildiğini yazmayan,Bilmediğini sormayan adam ilerleyemez...
'PeSSivite'
|
|
|
shapcy
Mustafa Şapçılı
Admin
Offline
Mesaj Sayısı: 811
PHP Coding...
|
Şimdi tabi gelen veriyi kontrol etmen lazım. Şimdi sen belli kriterler istiyorsun sorgun için. O zaman bu veriler gelmiş mi diye kontrol etmen lazım if yapısıyla örneğin, sonra bu veriler düzgün veriler mi diye kontrol etmen lazım sorgunu bozmaması için. Bunları gerçekleştirdikten sonra yapabilirsin sorgunu.
|
|
|
|
|
Logged
|
|
|
|
PeSSivite
PHP Öğrencisi
Offline
Mesaj Sayısı: 99
|
Peki şöyle bir komut çalışır mı if($_GET["dosya"] = ".$dosya[id]."){ Print "$dosya[id]"; }else{ print "Böyle bir dosya bulunmamaktadır"; }
Yani url deki dosya değerinde bir dosya varsa base de,onu göstersin diyorum burda.çalışır mı sizce ?
|
|
|
|
|
Logged
|
Bildiğini yazmayan,Bilmediğini sormayan adam ilerleyemez...
'PeSSivite'
|
|
|
shapcy
Mustafa Şapçılı
Admin
Offline
Mesaj Sayısı: 811
PHP Coding...
|
Sanırım tam senin yapını anlamamışım. Şöyle bir daha anlatayım. Bir dosya eklediğinde o tabloda dosya_id, anakat_id, altkat_id gibi sütunlar yok mu? Şimdi sen GET ile verilerin gelip gelmediğini, düzgün mü değil mi diye baktıktan sonra sorguya alırsın. Sorgudan sonuç dönüyorsa ztn dosya vardır ve ekrana basarsız; yoksa ztn dosya bulunamadı hatasını basarsın.
|
|
|
|
|
Logged
|
|
|
|
PeSSivite
PHP Öğrencisi
Offline
Mesaj Sayısı: 99
|
evet dediğiniz kısımlar var dosyalar tablosunda.
GET ile nasıl düzgün mü değil mi bakabilirim ?
ufak bir örnek yazabilir misiniz
|
|
|
|
|
Logged
|
Bildiğini yazmayan,Bilmediğini sormayan adam ilerleyemez...
'PeSSivite'
|
|
|
shapcy
Mustafa Şapçılı
Admin
Offline
Mesaj Sayısı: 811
PHP Coding...
|
Bi şunu dene istersen; if (!ctype_alnum($_GET['dosya']) || !ctype_alnum($_GET['altkat']) || !ctype_alnum($GET['anakat')) { echo 'Hacking Girişimi'; exit(); }
Tabi adamı hemen hackle suçlamamak lazım ama sonuçta oradaki verimize niye harf veya rakam dışında bir veri girsin  Verinin gelip gelmediğini veya boş olup olmadığını empty, isset gibi fonksiyonlarla halledersin. Gerekirse onlarla da ilgili örnek vererim.
|
|
|
|
|
Logged
|
|
|
|
PeSSivite
PHP Öğrencisi
Offline
Mesaj Sayısı: 99
|
if(empty($_GET["dosya"])){ print "Böyle bir dosya bulunmamaktadır"; }else{ Print $dosya[adi]; }
Bu şekilde varmı yokmu diye bakıyorum ama gene konuyu açtığımdaki sorumu yanıtlamıyor tüm bunlar 
|
|
|
|
|
Logged
|
Bildiğini yazmayan,Bilmediğini sormayan adam ilerleyemez...
'PeSSivite'
|
|
|
shapcy
Mustafa Şapçılı
Admin
Offline
Mesaj Sayısı: 811
PHP Coding...
|
Ya dosya adını fln yazmayacaksın. Sen sadece kontrol yapacaksın, eğer kontrollerde aksilik çıkıyorsa Dosya bulunamadı veya buna benzer bir hata ver. Ama kontrol doğruysa diye hemen print yapmayacaksın. Örneğin; if(empty($_GET["dosya"])){ print "Böyle bir dosya bulunmamaktadır"; exit(); }
Hata oluştuğu için tüm scripti sonlandırıyoruz. Çünkü sorgumuz gerçekleşmemeli. Tüm bu kontroller gerçekleştikten sonra sorgulama zamanı. SELECT alan,cart,curt ........................... WHERE dosya_id=$_GET['dosya'] and ..... Bu sorgu sonucunu yazdırdığında ztn istediğin sonuçtur. Eğer bu sorgu sonuç döndürmezse de Dosya bulunamadı. Umarım bu sefer anlatabilmişimdir. Olmadı kodlarını yaz, tablo yapını ayrıntılı yaz ki sorununu daha çabuk halledebilelim...
|
|
|
|
|
Logged
|
|
|
|
PeSSivite
PHP Öğrencisi
Offline
Mesaj Sayısı: 99
|
if(empty($_GET["dosya"])){ print "Böyle bir dosya bulunmamaktadır"; }else{ $dosyabak = mysql_query("SELECT id FROM bk_dosyalar WHERE id = '".$_GET[dosya]."'"); $dosya = mysql_fetch_assoc($dosyabak); Print "$dosya[id]"; }
Şu şekilde çalıştı.Tabi böyle kullanmayacam daha değiştiricem bunu.Takıldığım yer olursa yine rahatsız ederim  Teşekkürler.
|
|
|
|
|
Logged
|
Bildiğini yazmayan,Bilmediğini sormayan adam ilerleyemez...
'PeSSivite'
|
|
|
shapcy
Mustafa Şapçılı
Admin
Offline
Mesaj Sayısı: 811
PHP Coding...
|
Peki bu halde oradaki altkat veya anakat ın ne anlamı var ?
|
|
|
|
|
Logged
|
|
|
|
PeSSivite
PHP Öğrencisi
Offline
Mesaj Sayısı: 99
|
Anakat ve altkat ı index te saklayıp dosya.php ye link verdirerek hallettim sorunu. İlk sorumdaki birazcık aşıyor şu an için beni 
|
|
|
|
|
Logged
|
Bildiğini yazmayan,Bilmediğini sormayan adam ilerleyemez...
'PeSSivite'
|
|
|
shapcy
Mustafa Şapçılı
Admin
Offline
Mesaj Sayısı: 811
PHP Coding...
|
Neyse sen bilirsin o zmn  İyi çalışmalar...
|
|
|
|
|
Logged
|
|
|
|
|
 |