Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

URL içinde bul değiştir

Konu, 'PHP' kısmında Adem GENÇ tarafından paylaşıldı.

  1. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Merhaba,

    örnek: /sayfa.php?aaaaa=15&bbbb=5&cccc=45

    Bununla URL yi aldık.
    $_SERVER['REQUEST_URI']

    Kırmızı ile işaretli 5 değer
    $yenideger
    değişkenle eşleştirip eşit veya büyük ise değiştirme olmayacak işlemde olmayacak, eğer küçük ise bir küçük değerle yani 5 değeri 4 değer ile değiştirip yeni URL verecek ve yeni URL ile sayfayı yenileyeceğim

    Bunu nasıl yaparız yardımcı olabilir misiniz

    Teşekkürler
     
  2. dinlex

    dinlex Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    218
    Beğenilen Mesajlar:
    55
    Şehir:
    Hatay
    Böyle birşey işini görür mü?
    PHP:
    <?php
    $aaaaa 
    $_GET["aaaaa"]; 
    $bbbb $_GET["bbbb"];
    $cccc $_GET["cccc"];
    $yenideger 4//buraya bahsedilen yeni değer gelecek, ben örnek olarak 4 girdim.

    if($bbbb >= $yenideger){
        echo 
    "Büyük veya eşit olduğu için işlem yapılmadı!"
    }else{
        
    $bbbb2 $bbbb--;
        
    $yeni_link "http://siteadi.com/sayfa.php?aaaaa=".$aaaaa."&bbbb=".$bbbb2."&cccc=".$cccc;
       
        
    header("Location: {$yeni_link}");
    }
    ?>
     
  3. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Buradaki 5 değeri ne olduğunu bilmiyoruz ki
    bbbb bu sabit metin ancak =5 beş değer sabit değil
    Sabit değer olmadığı için nasıl bulacağız mesele bu

    bbbb= den sonra gelen & ye kadar ki değeri elde edebilsem devamını getirebilirim her halde
     
  4. dinlex

    dinlex Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    218
    Beğenilen Mesajlar:
    55
    Şehir:
    Hatay
    tamam da benim verdiğim kodda zaten bbbb=5 kısmı sabit değil ki. Ne gelirse ona göre işlem yapıyor. Eğer 8 gelirse yine benzer işlem yapacak.
     
  5. dinlex

    dinlex Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    218
    Beğenilen Mesajlar:
    55
    Şehir:
    Hatay
    $bbbb = $_GET["bbbb"]; olarak girdim, yani linkteki &bbbb= kısmında kaç varsa onu alır.
     
  6. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Dediğinizi şimdi anladım ama şöyle bir sorun var burada sayfalama olduğu için post ve get gönderiliyor o zaman karışıyor bu yüzden url içinden almam lazım.

    şöyle bir şey buldum ve bu işimi gördü
    PHP:
    function get_string_between($string$start$end){
        
    $string ' ' $string;
        
    $ini strpos($string$start);
        if (
    $ini == 0) return '';
        
    $ini += strlen($start);
        
    $len strpos($string$end$ini) - $ini;
        return 
    substr($string$ini$len);
    }

    $fullstring $_SERVER['REQUEST_URI'];
    $parsed get_string_between($fullstring'page=''&');

    if(
    $lastP $parsed){
    $yeniurl strtr($fullstring,"page=".$parsed,"page=".$lastP);
    header("Location: "$yeniurl);
    }
     
  7. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Aslında derdim şudur
    Sayfamda tablom var ve sayfalama sistemi her sayfada 10 satır var bir veya birden çok satır sildiğim de aynı sayfada kalsın istiyorum
    Bunun için satır sildiğim de sayfayı yenileyecek URL yi bununla $_SERVER['REQUEST_URI'] aldığım url kullanarak sayfayı yeniyorum burada sorun yok istediğim gibi çalışıyor

    Ancak, toplam 41 satır verim olduğunu var sayalım
    [1]-[2]-[3]-[4]-[5]
    5. sayfada 1 tane veri var sildiğim de sayfa yenileniyor ama yine 5. sayfada kalıyor ve tabloda veri yok

    Bende diyorum ki son page=5 beş değeri alayım, kaç sayfa olduğunu söyleyen değişkenden de kaç sayfa olduğunu alayım oda bana 4 sayfa olduğunu söyleyecek böyle durumda URL deki page=4 olarak değiştireyim ve yeniden sayfayı yenileyim diyorum ama ikinci yenilemede sorun oldu

    Silme işlemi ajax ile silinecek ID yi sil.php dosyasına gönderiyorum oradan siliyor ajax ta başarıyla silindi diyor bende tamam diyorum ve ajax bu kod ile sayfayı yeniliyor
    function(){ window.location.href='<?=$_SERVER['REQUEST_URI'];?>' }

    Hata şu:
    Warning: Cannot modify header information - headers already sent by (output started at ---------.php:266) in ---------------------.php on line 586
    Ben şunu anlıyorum sayfa zaten yenilendi diyor

    266. function(){ window.location.href='<?=$_SERVER['REQUEST_URI'];?>' }
    586. header("Location: ". $yeniurl);

    Bunu nasıl aşarız yada ?
     
  8. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Aslında doğru diyorsunuz, bildiğim şeyi olmaz diye hiç bunu düşünmedim
    İşte acemilik budur işte =D böylesi daha doğru ve daha kolay
    Teşekkürler
     
  9. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    ikinci yönlendirmeyi de javascript ile yapınca oldu
     
  10. dinlex

    dinlex Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    218
    Beğenilen Mesajlar:
    55
    Şehir:
    Hatay
    İyi o zaman :) Ben de konuyu anlamadığımı düşünmeye başlamıştım. :)
     
  11. Adem GENÇ

    Adem GENÇ Daimi Üye

    Kayıt:
    11 Kasım 2012
    Mesajlar:
    835
    Beğenilen Mesajlar:
    5
    Meslek:
    Bina Elektronik Sistemleri
    Şehir:
    İstanbul
    Bir sayfadaki tüm veriler silindiğinde böyle oluyordu
    [​IMG]
    page=3 olarak yeniden link göndermek gerekiyordu aşağıdakilerle yapmaya çalıştım

    Ben şöyle bir şey yaptım tam bitmedi ama sonuç alıyorum galiba

    Bu sayfalama bir yerde bulmuştum kendime uyarladım
    PHP:
    $haftadizi=array(1,2,3,4,5,6,7);
      
    $top_sayfa ceil(
                       
    intval(
                         
    current(
                           
    $this->db_connection->query("SELECT COUNT(*) FROM zamanlanmisgorev WHERE dosya_adi LIKE '%".$_REQUEST['ara']."%' || gorev_adi LIKE '%".$_REQUEST['ara']."%'")->fetch_row()
                         )
                       )
                     );

    $page = isset($_REQUEST['page']) ? (int) $_REQUEST['page'] : 1;
    $limit = isset($_REQUEST['sayfada']) ? (int) $_REQUEST['sayfada'] : 10;
    $pageurl  $_SERVER['PHP_SELF']; //Sayfa Bağlantısı
    $sayfada = ($page 1) * $limit;

    $page_url $pageurl."?sayfada=".$limit;
    //echo $_SERVER['REQUEST_URI'];

    function Sayfala($top_sayfa,$page,$limit,$page_url)
    {
        
    // Sayfalama Şeridimiz
        
    if ($top_sayfa $limit) :
        echo 
    '<div id="sayfala"><span class="say_sabit">Sayfalar</span>';
        
    $x 3// Aktif sayfadan önceki/sonraki sayfa gösterim sayisi
        
    $lastP ceil($top_sayfa $limit);
        
    // sayfa 1'i yazdir
        
    if ($page==1){
            echo 
    '<span class="say_aktif">1</span>';
        }else{
            echo 
    '<a class="say_a" href="'.$page_url.'">1</a>';
        }
        
    // "..." veya direkt 2
        
    if ($page-$x>2){
            echo 
    '<span class="say_b">...</span>';
            
    $i $page-$x;
        }else{
            
    $i 2;
        }
        
    // +/- $x sayfalari yazdir
        
    for ($i$i<=$page+$x$i++){
            if (
    $i==$page)
            echo 
    '<span class="say_aktif">'.$i.'</span>';
            else
            echo 
    '<a class="say_a" href="'.$page_url.'&page='.$i.'">'.$i.'</a>';
            if (
    $i==$lastP)
            break;
        }
                                                                                                                      
        
    // "..." veya son sayfa
        
    if ($page+$x<$lastP-1){
            echo 
    '<span class="say_b">...</span>';

            echo 
    '<a class="say_a" href="'.$page_url.'&page='.$lastP.'">'.$lastP.'</a>';
        }elseif (
    $page+$x==$lastP-1){
            echo 
    '<a class="say_a" href="'.$page_url.'&page='.$lastP.'">'.$lastP.'</a>';
        }
        echo 
    '</div>';//#sayfala
        
    endif;
    }
    Buda sayfanın son duruma göre yeniden URL oluşturuyorum
    Sil ve düzenle için
    PHP:
    $lastP ceil($top_sayfa $limit);

    if(isset(
    $_POST['sayfada'])){
    $sayfadaa "sayfada=".$_POST['sayfada'];
    }
    if(isset(
    $_GET['sayfada'])){
    $sayfadaa "sayfada=".$_GET['sayfada'];
    }
    if(isset(
    $_GET['page'])){
    $pagee "&page=".$_GET['page'];
    }
    if(isset(
    $_GET['edit'])){
    $editt "&edit=".$_GET['edit'];
    }
    if(isset(
    $_GET['sayfada']) OR isset($_GET['page']) OR isset($_GET['edit']) OR isset($_POST['sayfada'])){
    $yeni_link $_SERVER['SCRIPT_NAME']."?".$sayfadaa.$pagee.$editt;
    $yeni_edit $_SERVER['SCRIPT_NAME']."?".$sayfadaa.$pagee;
    }else{
    $yeni_link $_SERVER['SCRIPT_NAME'];
    $yeni_edit $_SERVER['SCRIPT_NAME'];
    }
    if( 
    $lastP != '0' AND $lastP $_GET['page'] ){
    $yenileme_linki str_replace("page=".$_GET['page'], "page=".$lastP$yeni_link);
    }
    if( 
    $lastP == '0' AND $lastP $_GET['page'] ){
    $yenileme_linki $_SERVER['SCRIPT_NAME'];
    }
    $yeni_link sayfa sildiğimde kullanıyorum
    $yeni_edit ise satırdaki veriyi düzenlerken yoksa url de edit=1&edit=5&edit=23 uzuyor peş peş düzenle ye basarsan bu yüzden edit=12 değeri düzenleye bastığında alıyor bu sorunu da böyle aştım

    $yenileme_linki ise url den gelen sayfa sayısı ile $lastP toplam sayfası küçük ise url deki page=5 yerine page=4 ile değiştiriyor ve aşağıdaki kod ile sayfa yenileniyor
    PHP:
    <?php
    if(isset($yenileme_linki)){
    ?>
    <script>
    $(function(){
    window.location.href='<?=$yenileme_linki;?>';
    })
    </script>
    <?php
    }
    Sayfanın başında ajax ile silme işlemi yapıyorum ajax silindi dediğinde Tamam diyorum sayfa yenileniyor ve eğer url deki sayfa sayısı ile toplam sayfa sayısı küçük ise yukarıdaki kod sayfa sonunda çalıyor sayfa yenileniyor, küçük değil ise sorun yok zaten.

    Düzenle butonu içinde şöyle bir şey yaptım
    PHP:
      $sonuc substr($yeni_edit, -3);
      if(
    $sonuc == 'php'){
      
    $ek '?';
      }else{
      
    $ek $yeni_edit."&";
      }
    href="<?=$ek?>edit=<?=$row->id?>#a">
    Bunu da böyle yaptım

    Böyle birşeyler yapmaya çalıştım tabi bizim acemi hobi işi
     
    Son düzenleme: 15 Mart 2017