OiS
WM Aracı
Kullanıcı
-
Üyelik
13.12.2012
-
Yaş/Cinsiyet
37 / E
-
Meslek
Öğrenci / Programcı
-
Konum
Kocaeli
-
Ad Soyad
İ** K**
-
Mesajlar
695
-
Beğeniler
92 / 79
-
Ticaret
25, (%96)
Merhabalar;
Yeni yeni php öğrenmeye başlıyorum kendime basit bi html/css ile bir blog yaptım. Ancak bu bloga wp'deki gibi single.php yapıp tek bir sayfada veritabanında bulunan içerikleri göstermek istiyorum. Nette baktım ama net bişey bulamadım mantık nedir, ne yapmam gerekiyor varsa kaynak gönderirseniz sevinirim.
FatihC
Yazılım-Tasarım-Matbaa
Kullanıcı
-
Üyelik
20.01.2014
-
Yaş/Cinsiyet
38 / E
-
Meslek
Yazılım
-
Konum
Malatya
-
Ad Soyad
F** C**
-
Mesajlar
99
-
Beğeniler
9 / 12
-
Ticaret
0, (%0)
ana sayfanda baslık1 e verdiğin linkte bir belirteç göndermen gekiyor mesela blog.php?makale=1 gibi blog.php dosyasındada get ile bu belirteci alıp sql sorgunda eşitlik vermelisin.
$id = $_GET['id'];
$sorgu = mysql_query("SELECT * FROM tabloadi WHERE id='$id'");
$yaz = mysql_fetch_array($sorgu);
$baslik = $yaz['baslik'];
$metin = $yaz['metin'];
urlden gelen makale değişkeni değiştikçe tablodaki kayıtlardan idsi aynı olan kaydı gösterir.
-
Üyelik
07.02.2015
-
Yaş/Cinsiyet
28 / E
-
Meslek
Front-end developer
-
Konum
Zonguldak
-
Ad Soyad
T** D**
-
Mesajlar
175
-
Beğeniler
18 / 28
-
Ticaret
0, (%0)
FatihC adlı üyeden alıntı
ana sayfanda baslık1 e verdiğin linkte bir belirteç göndermen gekiyor mesela blog.php?makale=1 gibi blog.php dosyasındada get ile bu belirteci alıp sql sorgunda eşitlik vermelisin.
urlden gelen makale değişkeni değiştikçe tablodaki kayıtlardan idsi aynı olan kaydı gösterir.
Öncelikle bunu böyle yaparsanız ben gelirim single.php?id='; DELETE FROM durum; /* yaparım ve bütün içeriklerinizi silerim.
Size önerim pdo ile yapmanız.
Örnek;
$query = $mysql->prepare("SELECT * FROM uye WHERE sayfa_id= ?");
$query->execute(array($_GET["id"]));
if ( $query ) {
print_r($query->fetch(PDO::FETCH_ASSOC));
}
bunun gibi :) PDO ile SQL Injection büyük ölçüde engellerseniz. Ama Yukarıdaki yöntem ile yaparsanız engelleyemezsiniz ve siteniz durmadan SQL Injection yer.
Hızlı deneyin, hızlı başarısızlığa uğrayın ve hızlı bir şekilde kendinizi yenileyin.
― T. Peters
-
Üyelik
07.02.2015
-
Yaş/Cinsiyet
28 / E
-
Meslek
Front-end developer
-
Konum
Zonguldak
-
Ad Soyad
T** D**
-
Mesajlar
175
-
Beğeniler
18 / 28
-
Ticaret
0, (%0)
Ben PHP Son sürümü PDO ile çalışıyorum sizde çalışması için PHP 5.1 üstü olması gerekir.
Size kısa bir örnek hazırlıyım.
Hızlı deneyin, hızlı başarısızlığa uğrayın ve hızlı bir şekilde kendinizi yenileyin.
― T. Peters
-
Üyelik
07.02.2015
-
Yaş/Cinsiyet
28 / E
-
Meslek
Front-end developer
-
Konum
Zonguldak
-
Ad Soyad
T** D**
-
Mesajlar
175
-
Beğeniler
18 / 28
-
Ticaret
0, (%0)
// Mysql bağlantısı
// www olan kısma veritabanı ismi
// localhost olan yere host adresi
// root olan yere kullanıcı adı
// Şifre yazan yere mysql şifresi
try {
$mysql = new PDO("mysql:host=localhost;dbname=www;charset=utf8","root","şifre");
} catch (PDOException $e) {
print $e->getMessage();
}
// Mysql'dan veri çekiyoruz.
$bagla = $mysql->prepare("SELECT * FROM single WHERE id= ?");
$bagla->execute(array($_GET["id"]));
if ( $bagla ) {
foreach ($bagla as $basla_a) {
// Verileri ekrana yazdırdım.
echo "Baslik: ";
echo $basla_a["baslik"]."
";
echo "İçerik: ";
echo $basla_a["icerik"]."
";
echo "Yazar: ";
echo $basla_a["yazar"];
}
}
?>
buyrun istenilen yerleri kendinize göre düzenleyin. ve aşağıdaki sql. veritabanına yükleyin.
http://dosyadepo.com/32dtest etmek için : index.php?id=1 yapın sonra 2 yapın öle gider id değerine göre.
Hızlı deneyin, hızlı başarısızlığa uğrayın ve hızlı bir şekilde kendinizi yenileyin.
― T. Peters