• 10-05-2007, 20:53:30
    #28
    Üyeliği durduruldu
    la haymac git hayvanınla oyna la
  • 11-05-2007, 00:34:03
    #29
    @Ozinga

    Tontonq array a direk nasıl uygulayacağını umuyorsun a be akıllı. Git biraz çalış sen
    Lem white sende düşmüşsün tuzağa


    'e be akıllı' o kadar laf sokacağına biraz post umu oku; benim de demek istediğim o

    "öyle olsak direk $_GET = addslashes($_GET); der geçerdik "

    dedim

    @Whitekey

    Daha önceden böyle birşeye ihtiyacım olmuştu kalkıp her get post lanan veriye htmlspecialchars falan ekleyeceğime tutup hepsini toptan filtreledim çalışmıyacağını bildiğim için denedim zaten

     
    <?
    
      foreach ($_GET as $key => $value) {
        if (is_array($_GET[$key])) {
          foreach ($_GET[$key] as $key2 => $value2) {
            $_GET[$key][$key2] = htmlspecialchars($_GET[$key][$key2]);
          }
        } else {
          $_GET[$key] = htmlspecialchars($_GET[$key]);
        }
      }
      foreach ($_POST as $key => $value) {
        if (is_array($_POST[$key])) {
          foreach ($_POST[$key] as $key2 => $value2) {
            $_POST[$key][$key2] = htmlspecialchars($_POST[$key][$key2]);
          }
        } else {
          $_POST[$key] = htmlspecialchars($_POST[$key]);
        }
      }
      foreach ($_COOKIE as $key => $value) {
        if (is_array($_COOKIE[$key])) {
          foreach ($_COOKIE[$key] as $key2 => $value2) {
            $_COOKIE[$key][$key2] = htmlspecialchars($_COOKIE[$key][$key2]);
          }
        } else {
          $_COOKIE[$key] = htmlspecialchars($_COOKIE[$key]);
        }
      }
      foreach ($_SERVER as $key => $value) {
        if (is_array($_SERVER[$key])) {
          foreach ($_SERVER[$key] as $key2 => $value2) {
            $_SERVER[$key][$key2] = htmlspecialchars($_SERVER[$key][$key2]);
          }
        } else {
          $_SERVER[$key] = htmlspecialchars($_SERVER[$key]);
        }
      }
     
      foreach ($_ENV as $key => $value) {
        if (is_array($_ENV[$key])) {
          foreach ($_ENV[$key] as $key2 => $value2) {
            $_ENV[$key][$key2] = htmlspecialchars($_ENV[$key][$key2]);
          }
        } else {
          $_ENV[$key] = htmlspecialchars($_ENV[$key]);
        }
      }
    ?>



    en iyi çözüm bunun için

    <?
    if (!get_magic_quotes_gpc()) {  
      foreach ($_GET as $key => $value) {
        if (is_array($_GET[$key])) {
          foreach ($_GET[$key] as $key2 => $value2) {
            $_GET[$key][$key2] = addslashes($_GET[$key][$key2]);
          }
        } else {
          $_GET[$key] = addslashes($_GET[$key]);
        }
      }
      foreach ($_POST as $key => $value) {
        if (is_array($_POST[$key])) {
          foreach ($_POST[$key] as $key2 => $value2) {
            $_POST[$key][$key2] = addslashes($_POST[$key][$key2]);
          }
        } else {
          $_POST[$key] = addslashes($_POST[$key]);
        }
      }
      foreach ($_COOKIE as $key => $value) {
        if (is_array($_COOKIE[$key])) {
          foreach ($_COOKIE[$key] as $key2 => $value2) {
            $_COOKIE[$key][$key2] = addslashes($_COOKIE[$key][$key2]);
          }
        } else {
          $_COOKIE[$key] = addslashes($_COOKIE[$key]);
        }
      }
      foreach ($_SERVER as $key => $value) {
        if (is_array($_SERVER[$key])) {
          foreach ($_SERVER[$key] as $key2 => $value2) {
            $_SERVER[$key][$key2] = addslashes($_SERVER[$key][$key2]);
          }
        } else {
          $_SERVER[$key] = addslashes($_SERVER[$key]);
        }
      }
     
      foreach ($_ENV as $key => $value) {
        if (is_array($_ENV[$key])) {
          foreach ($_ENV[$key] as $key2 => $value2) {
            $_ENV[$key][$key2] = addslashes($_ENV[$key][$key2]);
          }
        } else {
          $_ENV[$key] = addslashes($_ENV[$key]);
        }
      }
    }
    ?>
    dir ama sizin başka önerileriniz warmı bilmem

    set_magic_quotes_runtime dicek herkes ama yanılıyorsunuz bakın adam ne demiş

    "I think the post below is useless here..

    magic_quotes_runtime is not magic_quotes_gpc.. when magic_quotes_runtime is enabled (on, =1, true), then every function call working with some kind of database will return strings with slashes (like addslashes everytime you call such a function). magic_quotes_gpc instead is what is meant in the post below - and in fact, magic_quotes_runtime does not do anything to it. but if there existed some function like set_magic_quotes_gpc it would not do anything too, the reason is mentioned below..

    "

    Bişi bilioz da konuşuoz euhehua

    so if you're searchin' for a way to turn off quotes_gpc than set the directive in the INI-File or with the help of the php_value-flag of mod_php, when php is compiled as an apache module, inside of an .htaccess-file (PERDIR-configuration). otherwise you really have to check wether quotes_gpc is enabled or not and than add addslashes or stripslashes as you need on the input-variables.

    and as mentioned in the post below that one belows this one ( -.- ) magic_quotes_runtime is mostrly useless too..
  • 11-05-2007, 00:46:45
    #30
    Üyeliği durduruldu
    olay şu $_GET i print_r ile yazdırdığınızda o bir değişkendir içerisinde kurallara uygun değişiklik yapmazsanız olmaz misal

    $_GET içeriği
    Array ( ............. ) diye gider kuralına uygun olarak değişiklik yaparsanız o baştaki Array yazan kısımı Xray olarak bile değiştirirsiniz ama içerik bozulduğu için ekrana basamazsınız.

    çok basit bir örnek sana

    <?
    function xxx($veri){ 
    	$veri=$text = str_replace("d", "e", $veri);
    	return $veri;
    }
    $_GET = xxx($_GET);
    print_r($_GET);
    ?>
    get olarak içerisinde d geçen birşeyler gir ve çalıştır değiştiğini göreceksin. İngilizce bilmek şart değil bu değişkeni bozmadan kurcalamak mümkün ama bunu anlatmak yerine yapılamaz vs. denilmiş olabilir. kod üzerine birşey söylemem gerekiyormu yoksa bunun yapılmasına dair hala ikna oldunmu :s
  • 11-05-2007, 00:50:22
    #31
    3.seferdir aynı şeyi tekrarlıyorum ben direk bir değişkeni array lere bölmeden array i ve değişkenini ayrı ayrı alıp değiştirmeden değişebileceğini söylemiyorum zaten demek istediğim şuna iyice baktınmı ?

    foreach ($_GET as $key => $value) {
    if (is_array($_GET[$key])) {
    foreach ($_GET[$key] as $key2 => $value2) {
    $_GET[$key][$key2] = addslashes($_GET[$key][$key2]);
    }
    } else {
    $_GET[$key] = addslashes($_GET[$key]);
    }
    }

    magic quotes on iken

    <?php
    print_r($_GET);
    exit;
    ?>

    x.php? deyince bildiğimiz gibi sonuç

    Array ( ) oluyor


    x.php?"x"="b"

    deyince sonuç

    Array
    (
    [\"x\"] => \"b\"
    )

    bu benim kod olmadan çalıştırdığımız zamanki hali benimkine geçelim

    x.php?"x"="b" >


    <?php
    # benim kod geldi : )
    foreach ($_GET as $key => $value) {
    if (is_array($_GET[$key])) {
    foreach ($_GET[$key] as $key2 => $value2) {
    $_GET[$key][$key2] = addslashes($_GET[$key][$key2]);
    }
    } else {
    $_GET[$key] = addslashes($_GET[$key]);
    }
    }


    print_r($_GET);
    exit;
    ?>

    >>

    Array
    (
    [\"x\"] => \\\"b\\\"
    )


    aradaki farkı hissedebiliyormusun
  • 16-05-2007, 12:20:29
    #32
    WhiteKey adlı üyeden alıntı: mesajı görüntüle
    bu zaten get_magic_quotes_gpc aktif değilse ' vb karakterlere \ ekliyor aktif olan makinelerde hiçbirşey yapmadan geçiyor çünkü aktif olduğunda otomatik ekleniyor kontrol etme sebebide aktifse \\\' haline gelebiliyor.
    hata konusunda fiktim yok bu satırlarla şimdiye kadar hiç hata almayı beceremedim sistemdendir belkide


    "get_magic_quotes_gpc" ne işe yarar?
  • 16-05-2007, 15:53:21
    #33
    tırnak karakterlerini filtreler ' ı \' " ı \" yapar null byte ı da blokluor olabilir bilmiom
  • 14-01-2009, 03:35:02
    #34
    $_GET=addslashes($_GET);
    yemez cünkü $_GET dizi olarak geliyor ve addslash string değerlerine uygulanabiliyor.
    $engel=array('"',"'");
    $di = array('\"',"\'");
    $_POST = str_replace($engel,$di,$_POST);
    $_GET = str_replace($engel,$di,$_GET);
    seklinde dizilerle, diziye aynı etkiyi yapılabilir (tabi eğer HTML filtreside yapılacaksa html engellenecek html charların temelini < > yı $engel 'e html encode kodunu da $di ya koyarak ekleyeiblirsiniz)
    ek olarak
    echo $_GET; uygularsanız Array sonucunu alırsınız
    get methotuyla gelen veriye bakmanız gerekir. (gerçi biliyorsunuzdur ama söyliyeyim ben yinede)
    misal:
    echo $_GET['ishlem'];
    ?ishlem=veri
    sonucu ekrana veri yazısı çıkması gerekir.
    php 6 da magic quotes (sihirli tırnaklar) ın kaldırılacağı php.net te duyuruldu
    ilgilenenlerin dikkatine şimdiden magic quotes kapalı yazmaya alışsanız iyi edersiniz ((:
    saygılar..
  • 14-01-2009, 03:44:16
    #35
    Veri tabanına girdi yaparken,

        if (!get_magic_quotes_gpc()) {  
            $veri = addslashes($veri);  
            }
    get_magic_quotes_gpc otomatik ' lerin başına slash koyulup koyulmadığını sorgular, eğer koymuyorsa biz kendimiz addslashes($veri) şeklinde koyarız

    Girdileri sayfada yazdırırkende,

            $veri = stripslashes($veri);
    bu şekilde slashları kaldırmış oluruz.
  • 14-01-2009, 03:51:05
    #36
    php.net/array_map