Skip to main content

AccessTr.neT


Php Seçilen Resmin Linkini Alma

Mettleshade
Mettleshade
2
1900

Php Seçilen Resmin Linkini Alma

#1
Merhaba ben bi yazılım sitesi kuruyorum kendi çapımda öğrenmek amaçlı..

Ana sayfamda ufak boyutta sıra sıra resimler var o resimleri pdo select işlemi ile çekip oluşturdum alttaki koddaki göründüğü gibi

Kod:
<?php
include("PHP/baglanti.php");

$query = $baglanti->query("SELECT * FROM uygulamalar", PDO::FETCH_ASSOC);
if ( $query->rowCount() ){
    foreach( $query as $row ){
$resimlink = $row['ResimLink'];
$adres = $row['Adres'];

?>

<a href="<? echo $adres; ?>"><img src="<? echo $resimlink; ?>" align="bottom" width="25%" heigth="auto" /></a>
<?
session_start();
$_SESSION["Baslik"] = $resimlink;
?>

<?
}  
}
?>

Amacım secilen resimin yani uygulamanın başka bir sayfada özelliklerini listemek.

Bunun için ana sayfadan resim seçilince özellikler sayfasına geçerken o resimin linkini session oluşturuyorum bu sayede özellikler sayfasında o sessionla veritabanından arama yapabiliyorum.

Buraya kadar herşey güzel normal fakat sıkıntı bundan sonra başlıyor :

Session oluştururken resimleri çekerkenki kodu kullanıyorum.

Bu kodda haliyle en son kayıtın bilgisini veriyor e buda sürekli aynı uygulama listelemeyi sağlıyor.

Ben bu resimlerin linklerini nasıl ayrı ayrı alıp session oluşturcam veya bir değere atayacam ?

Yardımlarınızı bekliyorum. Hayırlı bayramlar...
Cevapla
#2
session_start her sayfanın başında kullanılmalı. <?php den sonra kullanmalısın ortalarda kullanma.

PHP taglarını açarken <? şeklinde değil <?php olarak kullan.

Resim linkini SESSION ile diğer tarafta kullanma. PHP de işlemleri GET ve POST temelli yapacaksın. Mesela programları listelediğin sayfada resimler var dedin. O resimlerin linki site.com/program_detay.php?id=200 gibi bir link olacak. Daha sonra program_detay.php sayfasında $_GET['id'] ile 200 değerini elde edeceksin. Elde ettiğin 200 değeri programın veritabanındaki Id sütununa ait değerdir genelde. PDO ile SELECT * FROM uygulamalar WHERE Id=200 gibi bir Sql cümlesi ile kaydın detaylarını elde edeceksin. Tabi Id=200 yerine $_GET['id'] ile aldığın değeri koyacaksın. Sonrası kayıt detayının gösterilmesi.

Her ne kadar $_GET['id] ile kayıt alınacak desem de direkt o şekilde kullanırsan hacklenirsin. Sayısal değerleri filter_var ile kontrol edip int ile sayısal değere çevireceksin. Onları bir sonraki aşamada öğrenirsin şimdilik PHP mantığını çözsen yeter.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#3
(31/08/2017, 09:55)alpeki99 yazdı: session_start her sayfanın başında kullanılmalı. <?php den sonra kullanmalısın ortalarda kullanma.

PHP taglarını açarken <? şeklinde değil <?php olarak kullan.

Resim linkini SESSION ile diğer tarafta kullanma. PHP de işlemleri GET ve POST temelli yapacaksın. Mesela programları listelediğin sayfada resimler var dedin. O resimlerin linki site.com/program_detay.php?id=200 gibi bir link olacak. Daha sonra program_detay.php sayfasında $_GET['id'] ile 200 değerini elde edeceksin. Elde ettiğin 200 değeri programın veritabanındaki Id sütununa ait değerdir genelde. PDO ile SELECT * FROM uygulamalar WHERE Id=200 gibi bir Sql cümlesi ile kaydın detaylarını elde edeceksin. Tabi Id=200 yerine $_GET['id'] ile aldığın değeri koyacaksın. Sonrası kayıt detayının gösterilmesi.

Her ne kadar $_GET['id] ile kayıt alınacak desem de direkt o şekilde kullanırsan hacklenirsin. Sayısal değerleri filter_var ile kontrol edip int ile sayısal değere çevireceksin. Onları bir sonraki aşamada öğrenirsin şimdilik PHP mantığını çözsen yeter.

İlginiz için teşekkür ederim hocam. Aslında ben VB.Netten düz mantikla bunun gibi kısa yoldan işlerimi halletmeye alışmışım Img-grin fakat php çok farklı sistem olduğunu dün fark ettim dediğiniz yöntemi örnek proje indirerek alıştırma yaptım daha hoş sağlıklı bir site oldu Img-grin
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task