lostyazilim

Php içerik sayfasında yardım

13 Mesajlar 1.696 Okunma
lstbozum
wmaraci reklam

OiS 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.
 

 

wmaraci
reklam

suncreative suncreative WM Aracı Kullanıcı
  • Üyelik 08.09.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Yazılım Uzmanı
  • Konum İstanbul Avrupa
  • Ad Soyad M** S**
  • Mesajlar 230
  • Beğeniler 20 / 31
  • Ticaret 1, (%100)
şurda istediğiniz bilgi mevcut http://www.dijitalders.com/icerik/802/php_ile_mysql_veritabanindan_bilgi_cekme.html

ve şunu deneyebilirsiniz http://sunmedya.org/?q=veritaban%C4%B1ndan+veri+%C3%A7ekme+php
 

 

OiS 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)


Veri çekmekten yöne sıkıntım yok. Ben burda mesela anasayfada baslık1'e tıkladığımda single.php baslik1'in içeriklerini göstermek istiyorum. Veya baslik2'ye tıkladığımda single.php'de baslik2 içeriklerini göstermek istiyorum. Bunun mantığını çözemedim ve nette çözüm bulamadım.
 

 

FatihC 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.
 

 

wmaraci
wmaraci

OiS 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)

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.


Hocam eğer sıkıntı olmazsa basit 2 sayfadan oluşan bir örnek gönderirmisiniz?
 

 

TuncerDemir TuncerDemir WM Aracı Kullanıcı
  • Ü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

OiS 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)

tuncerrdemirr adlı üyeden alıntı

Ö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.



Hocam basit bi 2 sayfalık örnek yapabilirmisiniz?
 

 

TuncerDemir TuncerDemir WM Aracı Kullanıcı
  • Ü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

OiS 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)

tuncerrdemirr adlı üyeden alıntı

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.


Localde zaten 5.5.12 kurulu hocam. PDO ile öğrenmem daha iyi olur. Bekliyorum. Çok sağolun.
 

 

TuncerDemir TuncerDemir WM Aracı Kullanıcı
  • Ü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/32d


test 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
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al