• 03-03-2022, 10:58:35
    #1
    Arkadaşlar şimdi duyurular.php sayfam var ve burada eklenen duyurularım var.
    Eklenen duyurulara da duyurudetay.php?id=xx yaptım.

    duyurular.php şöyle;
    <?php
    include('../db.php');
    $sql=$bag->query("select * from duyurular",PDO::FETCH_ASSOC); foreach ($sql as $dun) { ?>
                      <tr>
                        <th scope="row"><?php echo $dun['duyuru_id']; ?></th>
                        <td><?php echo $dun['isim']; ?></td>
                        <td><?php echo $dun['tarih']; ?></td>
                        <td style="font-size: 14px;">
    <a href="duyurudetay.php?id=<?php echo $dun['duyuru_id'];?>">Düzelt</a></td>
                      </tr>
    <?php } ?>
    duyurudetay.php ise şöyle;
     <?php include('../db.php');
     $id = strip_tags(trim($_GET['id']));
     $al = $bag->query("select * from duyurular where duyuru_id=$id")->fetch(PDO::FETCH_ASSOC);
     ?>
    <form method="post" enctype="multipart/form-data">
        
        
    Duyuru Başlığı<br />
    <input type="text" class="form-control" value="<?php echo $al['isim']; ?>" name="isim" size="45"><br />
          
    Genel Açıklama</br>
    <textarea name="metin" class="form-control"><?php echo $al['metin']; ?></textarea><br>
    
    <button type="submit" name="duyuruguncelle" class="btn btn-primary">Duyuruyu Güncelle</button>
    </form>
    Şimdi sorun şurada;
    duyurudetay.php?id=35 sayfasına gelince veri tabanında 35 numaralı içerik olduğu için verileri görebiliyorum ama duyurudetay.php?id=3500 yapınca da sayfa geliyor. 3500 id veri tabanında yok ama yine de sayfa getiriyor önüme.
    Ben burada veri tabanında o id olmayınca önüme hata sayfasını çıkarmak istiyorum. Bana yardımcı olur musunuz?
  • 03-03-2022, 11:04:12
    #2
    include('../db.php');
    $id = strip_tags(trim($_GET['id']));
    $varmi = $db->prepare("SELECT*FROM duyurular WHERE duyuru_id = ?");
    $varmi->execute([$id]);
    if($varmi->rowCount()){
    /* varsa_gettir */
    $cek = $varmi->fetch(PDO::FETCH_ASSOC);
    }else{
    /* yoksa yönlendir */
    header("Location:...");
    }
  • 03-03-2022, 11:04:31
    #3
    İçinin boş olup olmadığını kontrol edersin eğer boşsa 404 gibi sayfana yönlendirirsin.
  • 03-03-2022, 11:05:12
    #4
    EmreKRMN adlı üyeden alıntı: mesajı görüntüle
    Arkadaşlar şimdi duyurular.php sayfam var ve burada eklenen duyurularım var.
    Eklenen duyurulara da duyurudetay.php?id=xx yaptım.

    duyurular.php şöyle;
    <?php
    include('../db.php');
    $sql=$bag->query("select * from duyurular",PDO::FETCH_ASSOC); foreach ($sql as $dun) { ?>
                      <tr>
                        <th scope="row"><?php echo $dun['duyuru_id']; ?></th>
                        <td><?php echo $dun['isim']; ?></td>
                        <td><?php echo $dun['tarih']; ?></td>
                        <td style="font-size: 14px;">
    <a href="duyurudetay.php?id=<?php echo $dun['duyuru_id'];?>">Düzelt</a></td>
                      </tr>
    <?php } ?>
    duyurudetay.php ise şöyle;
     <?php include('../db.php');
     $id = strip_tags(trim($_GET['id']));
     $al = $bag->query("select * from duyurular where duyuru_id=$id")->fetch(PDO::FETCH_ASSOC);
     ?>
    <form method="post" enctype="multipart/form-data">
        
        
    Duyuru Başlığı<br />
    <input type="text" class="form-control" value="<?php echo $al['isim']; ?>" name="isim" size="45"><br />
          
    Genel Açıklama</br>
    <textarea name="metin" class="form-control"><?php echo $al['metin']; ?></textarea><br>
    
    <button type="submit" name="duyuruguncelle" class="btn btn-primary">Duyuruyu Güncelle</button>
    </form>
    Şimdi sorun şurada;
    duyurudetay.php?id=35 sayfasına gelince veri tabanında 35 numaralı içerik olduğu için verileri görebiliyorum ama duyurudetay.php?id=3500 yapınca da sayfa geliyor. 3500 id veri tabanında yok ama yine de sayfa getiriyor önüme.
    Ben burada veri tabanında o id olmayınca önüme hata sayfasını çıkarmak istiyorum. Bana yardımcı olur musunuz?


    selamlar öncelikle pdo kullanıyorsanız sorgu içinde değer göndermeyiniz çünkü bu durumda pdo kullanmanın anlamı kalmaz yine sql açıklarına durum vermiş olursunuz.

    $sorgu = $db->prepare("SELECT * FROM duyurular WHERE id=:id");
    $sorgu->execute([':id' => $id]);
    if($sorgu->rowCount()){
    
    $row = $sorgu->fetch(PDO::FETCH_ASSOC);
    
    echo $row['duyurubaslik'];
    echo $row['duyuruicerik'];
    
    
    }else{
    //eğer bu idye ait blog yoksa ana sayfaya yönlendir
    }