İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Hata Nerde?

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
merhaba arkadaşlar kodlamam gereken bir sayfa var ilgili kodlar aşağıda ama bir hata yaptım listeleme yapmıyor acaba hata nedir?

yardım ederseniz sevinirim

teşekkürler


PHP:
<?php
$sorgu = mysql_query("SELECT * FROM odemeler WHERE durum='onaylanmadi' ORDER BY id DESC");
while ($cek = mysql_fetch_array($sorgu)) {
$id = $cek[id];
$odemeyapanid = $cek[odemeyapanid ];
$odemeyapilanis = $cek[odemeyapilanis];
$sorgu1 = mysql_query("SELECT * FROM uyeler WHERE id='$odemeyapanid' ORDER BY id DESC");
while ($cek1 = mysql_fetch_array($sorgu1)) {
$sorgu2 = mysql_query("SELECT * FROM siparis WHERE id='$odemeyapilanis' ORDER BY id DESC");
while ($cek2 = mysql_fetch_array($sorgu2)) {
$no = $no+1;
echo "<div align='center'>
		<table border='0' id='table3' style='border-width:0px; ' width='700'>
			<tr>
				<td style='border-style: none; border-width: medium; ' width='45' align='center'>
				<font face='Tahoma' style='font-size: 9pt; font-weight: 700' color='#E30000'>
				$no</font></td>
				<td style='border-style: none; border-width: medium; ' width='150' align='left'>
				<font face='Tahoma' style='font-size: 9pt; font-weight: 700' color='#E30000'>
				<a class=\"thumbnail\" href=\"#\"><font face='Tahoma' style='font-size: 9pt; font-weight: 700' color='#e30000'>$cek1[ad_soyad]</font><span>$cek[adsoyad]</span></a></font></td>
				<td style='border-style: none; border-width: medium; ' width='200' align='left'>
				<font face='Tahoma' style='font-size: 9pt; font-weight: 700' color='#E30000'>
				ID : $cek2[id] $cek2[is_turu] Tasarımı</font></td>
				<td style='border-style: none; border-width: medium; ' width='80' align='left'>
				<font face='Tahoma' style='font-size: 9pt; font-weight: 700' color='#E30000'>
				$cek[tarih]</font></td>
				<td style='border-style: none; border-width: medium; ' width='120' align='left'>
				<font face='Tahoma' style='font-size: 9pt; font-weight: 700' color='#E30000'>
				<a class=\"thumbnail\" href=\"#\"><font face='Tahoma' style='font-size: 9pt; font-weight: 700' color='#e30000'>$cek[tutar]</font><span>Hesap No: $cek[hesapno]</br></br>Açıklama: $cek[aciklama]</span></a></font></td>
				<td style='border-style: none; border-width: medium; ' align='center' width='150'>
<a href='odeme_sil.php?id=$cek[id]'><font face='Tahoma' style='font-size: 9pt; font-weight: 700' color='#E30000'>Sil</font></a>  -  <a href='odeme_onayla.php?id=$cek[id]'><font face='Tahoma' style='font-size: 9pt; font-weight: 700' color='#E30000'>Onayla</font></a></td>
			</tr>
			</table>
	</div>";
}
}
}


?>
 

muratmoon

0
İyinet Üyesi
Katılım
5 Eylül 2008
Mesajlar
194
Reaction score
0
Buradaki herkesin yapacağı şeyi yapıp tepki vereceğini biliyorum ama ne yazıkki yinede söylemeden edemeyeceğim.

Bu yukarıdaki kodu sen yazdıysan ve bu kodla bir script oluşturmayı düşünüyorsan vazgeç.

Yukarıda verdiğin kodun her satırında en az 2 güvenlik açığı, en azda 3 tane optimizasyon problemi var.

Kodlama standartları ile ilgili ve phpde güvenlik ve optimizasyon hakkında biraz daha döküman okuman gerekli.

Bunları ister iyi niyetli bir tavsiye olarak kabul edip kendini geliştirebilirsin, yada bana sataşırsın ama cevap alamazsın. Bundan sonrası senin bileceğim bişey.
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
@muratmoon acaba söylediğiniz 2 güvenlik açığını da yazabilirsiniz. Veya bu konuda ne gibi bir araştırma yapabiliriz. Biraz daha açıklayıcı bilgi verirseniz memnun olurum.
 

muratmoon

0
İyinet Üyesi
Katılım
5 Eylül 2008
Mesajlar
194
Reaction score
0
1. dışardan gelen veriyi kontrol etmeden veritabanı sorgusu içinde kullanmak.
2. veritabanından gelen veriyi encode etmeden html içinde kullanmak.
 

muratmoon

0
İyinet Üyesi
Katılım
5 Eylül 2008
Mesajlar
194
Reaction score
0
Biz tüm veriyi kendimiz giriyoruz kesinlikle dışardan veri almıyoruz, veriyi de ona göre giriyoruz diyorsanız ilk madde belki bi ihtimal kullanım dışı olabilir ama uygun programcılık böyle değildir.
 

muratmoon

0
İyinet Üyesi
Katılım
5 Eylül 2008
Mesajlar
194
Reaction score
0
bi önceki mesajımı okursan açıkladım. veritabanına veri dışardan gelecektir.

örneğin aşağıdaki iki alan;

$odemeyapanid = $cek[odemeyapanid ];
$odemeyapilanis = $cek[odemeyapilanis];
 

muratmoon

0
İyinet Üyesi
Katılım
5 Eylül 2008
Mesajlar
194
Reaction score
0
optimizasyona girersek zaten 10 - 20 tane çıkartırım.

ama en kötüsü * ile sorgu almak, * ile sorgu sadece dur bakim şu tabloda ne var ne yok diye geliştirme yaparken alınmalı. yazdığınız bir script içinde * olması hiçbir şartta normal değildir. tüm kolonları çekiyor bile olsanız.

ayrıca çok incelemedim ama bu 3 sorguyu birleştirip tek sorguda aynı verinin çekilebileceğine de eminim.
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
dışarıdan veri gelmiyor bulunduğu sayfada başka yerlerde kullanıldığı için o şekilde ayrıca bu kişilere açık bir script değil yönetim panelinde bir sayfanın bir kısmı. 3 sorguyla ilk olarak veri çektim listelendi ama sonrasında veriler listelenmedi hata nerde onu arıyorum bu doğrultuda yardım ederseniz sevinirim
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
Ne yapmaya çalıştığını yazarsan daha iyi olur. Iki while() iç içe, her bir kullanıcı döngüsünde tekrar sipariş döngüsü neden içinde.
 

...::LorD::...

0
İyinet Üyesi
Katılım
27 Aralık 2007
Mesajlar
2,109
Reaction score
2
Konum
cHeteM
merhabalar sorun giderildi yanlış yaptığım şey whileları silmemişim sorguyu kopyala yapınca + tablo içindeki verileri uyuşmadığı için ilgi gösteren herkese teşekkürler konu kilitlenebilir veya silinebilir
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst