• 20-05-2021, 17:23:08
    #1
    Merhaba, php de ticket sistemi kodladıme herşey sorunsuz çalışıyor. Tek eksiğim $_GET ile gönderdiğim ticket id sini o ticket'a ait olmayan kullanıcının görememesi. Bunu nasıl yapabilirim? sql fetch kodunda where user_id = :id and where ticket_id = $ticketid şeklinde yaptım. Bu sayede ticketin içeriği gösterilmiyor ama alt kısıma ticket'ı yanıtlamaları için bit box koymuştum o gözüküyor ve oradan gönderilen değerler boş değer olarak veritabanına kayıt ediliyor. Eğer o ticket o kişiye ait değilse x sayfasına yönlendirmesini nasıl yapabilirim?

    Veritabanı içeriğim ;



    id : normal değer id si
    user_id : kullanıcının veritabanına kayıt edilen id si (users tablosunda bu değer id)
    user_name : kullanıcının adı
    mesaj : ticket içeriği (yorumlarda dahil)
    kategori : ENUM şeklinde kategori
    durum: destek talebinin durumu
    cevaplayan : ENUM şeklinde destek ve user şeklinde son yanıtlayan kişiyi belirtiyor.
    dcevaplayan_username : destek yetkilisinin adı
    tarih : php kod da yazdırılmayan direk sqlde on insert şeklinde verilen tarih değeri
    talep_id : ticketin id si

    Şimdiden teşekkür ederim
  • 20-05-2021, 17:27:26
    #2
    İlk olarak session ile kullanıcı ID'sini çekersiniz.

    Daha sonra o ticket yani user_id != session'daki ID'ye anasayfaya yönlen yaparsınız.

    Kodlarınızın nasıl olduğunu bilmediğimden sadece mantığı iletiyorum.
  • 20-05-2021, 17:28:07
    #3
    Ne yapmaya çalıştığını anladım fakat tam olarak ne yaptığını anlamadım.
    Yapman gereken şey, ticket id yi aldıktan sonra o ticket id nin o ticket id yi yollayan kişiye ait olup olmadığını kontrol etmek. Bunu mysql sorgusu ile de yapabilirsin, if else ilede. mysql daha performanslı çalışır ve doğru olandır.
    mysql sorguna where ekleyerek yapabilirsin.
    Ayrıca, sen sql injection yersin veya sisteminde xss açığı vardır gibime geldi.
  • 20-05-2021, 17:28:40
    #4
    AndMex adlı üyeden alıntı: mesajı görüntüle
    Merhaba, php de ticket sistemi kodladıme herşey sorunsuz çalışıyor. Tek eksiğim $_GET ile gönderdiğim ticket id sini o ticket'a ait olmayan kullanıcının görememesi. Bunu nasıl yapabilirim? sql fetch kodunda where user_id = :id and where ticket_id = $ticketid şeklinde yaptım. Bu sayede ticketin içeriği gösterilmiyor ama alt kısıma ticket'ı yanıtlamaları için bit box koymuştum o gözüküyor ve oradan gönderilen değerler boş değer olarak veritabanına kayıt ediliyor. Eğer o ticket o kişiye ait değilse x sayfasına yönlendirmesini nasıl yapabilirim?

    Veritabanı içeriğim ;



    id : normal değer id si
    user_id : kullanıcının veritabanına kayıt edilen id si (users tablosunda bu değer id)
    user_name : kullanıcının adı
    mesaj : ticket içeriği (yorumlarda dahil)
    kategori : ENUM şeklinde kategori
    durum: destek talebinin durumu
    cevaplayan : ENUM şeklinde destek ve user şeklinde son yanıtlayan kişiyi belirtiyor.
    dcevaplayan_username : destek yetkilisinin adı
    tarih : php kod da yazdırılmayan direk sqlde on insert şeklinde verilen tarih değeri
    talep_id : ticketin id si

    Şimdiden teşekkür ederim
    Bitbox' a da bir if koyun, eğer sql kayıt sonuç yoksa (kayıt sayısı 0 ise ) gözükmesin.
  • 20-05-2021, 17:30:57
    #5
    Programmer adlı üyeden alıntı: mesajı görüntüle
    Bitbox' a da bir if koyun, eğer sql kayıt sonuç yoksa (kayıt sayısı 0 ise ) gözükmesin.
    Castaway adlı üyeden alıntı: mesajı görüntüle
    Ne yapmaya çalıştığını anladım fakat tam olarak ne yaptığını anlamadım.
    Yapman gereken şey, ticket id yi aldıktan sonra o ticket id nin o ticket id yi yollayan kişiye ait olup olmadığını kontrol etmek. Bunu mysql sorgusu ile de yapabilirsin, if else ilede. mysql daha performanslı çalışır ve doğru olandır.
    mysql sorguna where ekleyerek yapabilirsin.
    Ayrıca, sen sql injection yersin veya sisteminde xss açığı vardır gibime geldi.
    FSahin adlı üyeden alıntı: mesajı görüntüle
    İlk olarak session ile kullanıcı ID'sini çekersiniz.

    Daha sonra o ticket yani user_id != session'daki ID'ye anasayfaya yönlen yaparsınız.

    Kodlarınızın nasıl olduğunu bilmediğimden sadece mantığı iletiyorum.
    Öncelikle hepinize teşekkür ederim Taleplerin çekildiği kod parçasını sizlerle paylaşıyorum aşağıda, onun üzerinden yardımcı olabilir misiniz? @FSahin; hocam dediğiniz gibi yaptım da hala göstermeye devam etti

    <?php
                                        $db->exec("SET names utf8");
                                        $sqlQuery = "SELECT * FROM ticket WHERE user_id = :id AND talep_id = '".htmlspecialchars($_GET["id"])."'";
                                        $statement2 = $db->prepare($sqlQuery);
                                        $statement2->execute(array(':id' => $id));
                                        while($rs2 = $statement2->fetch()){
                                            $ticketid = $rs2['id'];
                                            $ticketuser_id = $rs2['user_id'];
                                            $ticketuser_name = $rs2['user_name'];
                                            $ticketdurum = $rs2['durum'];
                                            $ticketkategori = $rs2['kategori'];
                                            $ticketmesaj = $rs2['mesaj'];
                                            $ticketdcevaplayan_username = $rs2['dcevaplayan_username'];
                                            $ticketcevaplayan = $rs2['cevaplayan'];
                                            $tickettarih = $rs2['tarih'];
                                        ?>
                                        
                                        
                <div class="col-md-20" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">
                  <div class="card card-profile" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">
                    <div class="card-body" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">
                      <h6 class="card-category text-gray" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"><?php echo $tickettarih; ?></h6>
                     <table><tr><th>
                     <?php 
                     if($ticketcevaplayan == "user") { ?>
                      <p align="left" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"><img class="img" src="https://cdn.pixabay.com/photo/2016/09/01/08/24/smiley-1635449__340.png" height="60" width="60" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"/>
                      <b oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">&ensp;<?php echo $ticketuser_name; ?>&ensp;</b>
                      </p>
                     <?php  } else if($ticketcevaplayan == "destek") { ?>
                     <p align="left" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"><img class="img" src="https://i.hizliresim.com/dktm2uv.png" height="60" width="60" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"/>
                      <b oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">&ensp;<?php echo $ticketdcevaplayan_username; ?> &ensp;</b>
                      </p>
                     <?php } ?>
                      </th>
                      <th>
                      <p class="card-description">
                        <?php echo $ticketmesaj; ?>
                      </p>
                      </th></tr></table>
                    </div>
                  </div>
                </div>
                    
    <?php } ?>
    
        <div class="content">
            <div class="container-fluid">
              <div class="row">
                <div class="col-md-12">
                  <div class="card">
                    <div class="card-header card-header-light">
            <form action="" method="post">
                <div class="row">
                          <div class="col-md-12">
                            <div class="form-group"><h5><font color="#6FD3CD"><b>Cevap Yaz</b></font></h5>
                              <textarea name="mesaj" type="text" class="form-control" maxLength="1000" rows="5" > </textarea>
                            </div>
                          </div>
                        </div>
                        
                        
                        <button type="submit" name="yanıtla" class="btn btn-info pull-left"><i class="material-icons text-light">send</i> Yanıtı Gönder</button>
            </form>
  • 20-05-2021, 17:54:52
    #6
    AndMex adlı üyeden alıntı: mesajı görüntüle
    Öncelikle hepinize teşekkür ederim Taleplerin çekildiği kod parçasını sizlerle paylaşıyorum aşağıda, onun üzerinden yardımcı olabilir misiniz? @FSahin; hocam dediğiniz gibi yaptım da hala göstermeye devam etti

    <?php
                                        $db->exec("SET names utf8");
                                        $sqlQuery = "SELECT * FROM ticket WHERE user_id = :id AND talep_id = '".htmlspecialchars($_GET["id"])."'";
                                        $statement2 = $db->prepare($sqlQuery);
                                        $statement2->execute(array(':id' => $id));
                                        while($rs2 = $statement2->fetch()){
                                            $ticketid = $rs2['id'];
                                            $ticketuser_id = $rs2['user_id'];
                                            $ticketuser_name = $rs2['user_name'];
                                            $ticketdurum = $rs2['durum'];
                                            $ticketkategori = $rs2['kategori'];
                                            $ticketmesaj = $rs2['mesaj'];
                                            $ticketdcevaplayan_username = $rs2['dcevaplayan_username'];
                                            $ticketcevaplayan = $rs2['cevaplayan'];
                                            $tickettarih = $rs2['tarih'];
                                        ?>
                                        
                                        
                <div class="col-md-20" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">
                  <div class="card card-profile" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">
                    <div class="card-body" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">
                      <h6 class="card-category text-gray" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"><?php echo $tickettarih; ?></h6>
                     <table><tr><th>
                     <?php
                     if($ticketcevaplayan == "user") { ?>
                      <p align="left" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"><img class="img" src="https://cdn.pixabay.com/photo/2016/09/01/08/24/smiley-1635449__340.png" height="60" width="60" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"/>
                      <b oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">&ensp;<?php echo $ticketuser_name; ?>&ensp;</b>
                      </p>
                     <?php  } else if($ticketcevaplayan == "destek") { ?>
                     <p align="left" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"><img class="img" src="https://i.hizliresim.com/dktm2uv.png" height="60" width="60" oncontextmenu="return false"  onselectstart="return false" ondragstart="return false"/>
                      <b oncontextmenu="return false"  onselectstart="return false" ondragstart="return false">&ensp;<?php echo $ticketdcevaplayan_username; ?> &ensp;</b>
                      </p>
                     <?php } ?>
                      </th>
                      <th>
                      <p class="card-description">
                        <?php echo $ticketmesaj; ?>
                      </p>
                      </th></tr></table>
                    </div>
                  </div>
                </div>
                    
    <?php } ?>
    
        <div class="content">
            <div class="container-fluid">
              <div class="row">
                <div class="col-md-12">
                  <div class="card">
                    <div class="card-header card-header-light">
            <form action="" method="post">
                <div class="row">
                          <div class="col-md-12">
                            <div class="form-group"><h5><font color="#6FD3CD"><b>Cevap Yaz</b></font></h5>
                              <textarea name="mesaj" type="text" class="form-control" maxLength="1000" rows="5" > </textarea>
                            </div>
                          </div>
                        </div>
                        
                        
                        <button type="submit" name="yanıtla" class="btn btn-info pull-left"><i class="material-icons text-light">send</i> Yanıtı Gönder</button>
            </form>
    hocam tw varın bakayım vaktiniz varsa
  • 20-05-2021, 19:18:24
    #7
    yusok32 adlı üyeden alıntı: mesajı görüntüle
    hocam tw varın bakayım vaktiniz varsa
    Olur hocam, teşekkür ederim AnyDesk var onunla bağlanabilir misiniz?
  • 20-05-2021, 19:23:53
    #8
    AndMex adlı üyeden alıntı: mesajı görüntüle
    Olur hocam, teşekkür ederim AnyDesk var onunla bağlanabilir misiniz?
    hocam teamviever daha iyi olur ya
  • 20-05-2021, 19:27:12
    #9
    yusok32 adlı üyeden alıntı: mesajı görüntüle
    hocam teamviever daha iyi olur ya
    Tamamdır o zaman, yükleyip pm atıyorum hocam