Php Seçilen Resmin Linkini Alma

29/08/2017, 19:51

Mettleshade

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...
31/08/2017, 09:55

alpeki99

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.
31/08/2017, 17:55

Mettleshade

(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