Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

EasyPHP ile $_GET Sorunsalı

Konu, 'PHP' kısmında KaravanaBatu tarafından paylaşıldı.

  1. KaravanaBatu

    KaravanaBatu Daimi Üye

    Kayıt:
    14 Haziran 2004
    Mesajlar:
    2,092
    Beğenilen Mesajlar:
    0
    Şehir:
    İskenderun
    Merhaba Arkadaşlar,

    EasyPHP 1.8 sürümünü yükledim ( PHP 4 ) ve bi kaç deneme yapayım dedim. $_Get fonksiyonu hakkında biraz araştırma yapıp örneklere bakıyordum ve örnek olarak da bu adresteki isset_03.php adlı örneği kullanıyordum ama kodlar düzgün çalışmıyor. Bi kaç siteden yine $_get ile ilgili basit örnekler doğru düzgün çalışmadı. Biraz araştırdım ama $_get'in php4 tarafından tanınmadığını ya da sorun çıkarttığını belirten bir belge bulamadım. Yalnız PHP.net'te şurda $HTTP_GET_VARS gibi fonksiyonların onaylanmadığını söyleyen sayfaya rastladım. Sorun nerden kaynaklanıyor? PHP sürümünden mi?

    TEŞEKKÜRLER...
     
  2. Kaplumb_Aga

    Kaplumb_Aga Üye

    Kayıt:
    29 Mayıs 2005
    Mesajlar:
    109
    Beğenilen Mesajlar:
    0
    muhtelemen register_globals'ten kaynaklanıyordur.
    ancak yazdığın kodları buraya da yazarsan daha net cevap verebiliriz..

    bu arada 2 uyarı:
    1. $_get bir fonksiyon değildir
    2. php4 yerine php5 ile çalışman daha doğru olur..
     
  3. deathisonitsway

    deathisonitsway x-coder

    Kayıt:
    7 Kasım 2007
    Mesajlar:
    6,145
    Beğenilen Mesajlar:
    6
    Meslek:
    php-coder
    Şehir:
    abroad
    @karavanabatu ceviz vikide yazdıgım o konu,eski bir makale,ama mantıgını kavratır onda hic suphe yok.lakin.formdan alınan bilgiyi orada 4 ile değilde 5le gelen super globallerle almalısın.
     
  4. KaravanaBatu

    KaravanaBatu Daimi Üye

    Kayıt:
    14 Haziran 2004
    Mesajlar:
    2,092
    Beğenilen Mesajlar:
    0
    Şehir:
    İskenderun
    Kablum_Aga EasyPHP dizinindeki PHP klasöründen PHP.ini dosyasındaki Register_Globals'i ON yaptım ama yine de sorun çıkarıyor. Kodu vereyim:

    Kod:
    <html><head><title>deneme</title>
    </head>
    <body>
    <form action="isset_03.php" method="post">
    pırasa yemeğini seviyor musunuz:
    <input type="checkbox" name="pirasa" value="evet"><br>
    <input type="submit" value="onayla">
    </form>
    </body></html>
     
    Şimdi alttaki kodu da isset_03.php olarak dizininize kaydedin
    <?php
    if (isset ($pirasa) ) {
    echo "siz pırasayı seviyorsunuz";
    }
    else {
    echo "siz pırasayı sevmiyorsunuz";
    }
    ?>
    Sağol deathisonitsway
     
  5. Ferhat Ozdemir

    Ferhat Ozdemir Daimi Üye

    Kayıt:
    14 Nisan 2006
    Mesajlar:
    3,268
    Beğenilen Mesajlar:
    3
    Meslek:
    Electronics and Computer Engineer
    Şehir:
    Texas
    PHP:
    <html><head><title>deneme</title>
    </head>
    <body>
    <form action="isset_03.php" method="post">
    pırasa yemeğini seviyor musunuz:
    <input type="checkbox" name="pirasa" value="evet"><br>
    <input type="submit" value="onayla">
    </form>
    </body></html>
     
    Şimdi alttaki kodu da isset_03.php olarak dizininize kaydedin
    <?php
    @$pirasa $_POST["pirasa"];
    if (isset (
    $pirasa) ) {
    echo 
    "siz pırasayı seviyorsunuz";
    }
    else {
    echo 
    "siz pırasayı sevmiyorsunuz";
    }
    ?>
     
  6. KaravanaBatu

    KaravanaBatu Daimi Üye

    Kayıt:
    14 Haziran 2004
    Mesajlar:
    2,092
    Beğenilen Mesajlar:
    0
    Şehir:
    İskenderun
    Sağol BlueNight. Kod sorunsuz çalıştı. Şu değişken önündeki '@' işaretini nette biraz baktım ama bulamadım. Neden '@' koyuyoruz?
     
  7. deathisonitsway

    deathisonitsway x-coder

    Kayıt:
    7 Kasım 2007
    Mesajlar:
    6,145
    Beğenilen Mesajlar:
    6
    Meslek:
    php-coder
    Şehir:
    abroad

    olası hatayı gizler...koymamak daha guzel...en azından ne hatası oldugunu gorursun.@ işaretini koyarsan hatayı goremezsin.ama bazen işe yarar,dandik yerlerde hata alıyorsun mesela ornek verim.klasor de resim yok mesela.bilerek resim koymuyorsun.kodunda diger resimleri silmek icin bir unlink komutu var diyelim.işte burada gereksiz yere unlink hatası alırsın.cunku klasorde resim yok.

    @unlink koymak yeterli,vs vs...gibi ornek...
     
  8. Ferhat Ozdemir

    Ferhat Ozdemir Daimi Üye

    Kayıt:
    14 Nisan 2006
    Mesajlar:
    3,268
    Beğenilen Mesajlar:
    3
    Meslek:
    Electronics and Computer Engineer
    Şehir:
    Texas
    Dediğin doğru Deat ama benim oraya @ koymamiin tek sebebi noticleri kapatmak. tabiki hatalar icin onerilmeyen bir durum. ama baş belası noticeler :(
    şimdi orda @ işareti olmaz ise secenek secilmez ise notice: undefined vsvs seyler yazcak ekrana onun icin koydum...
     
  9. roksan

    roksan Daimi Üye

    Kayıt:
    16 Aralık 2007
    Mesajlar:
    876
    Beğenilen Mesajlar:
    0
    Kullanım hatalı olunca notice'lar da kaçınılmaz oluyor...

    isset_03.php:

    PHP:
    <?php
        $pirasa 
    $_POST['pirasa'];
        if(
    $pirasa == "evet") {
            echo 
    "Siz Pırasa'yı seviyorsunuz.";
        } else {
            echo 
    "Siz Pırasa'yı sevmiyorsunuz.";
        }
    ?>
    Kod:
    <html>
        <head>
           <title>deneme</title>
        </head>
        <body>
            <form action="isset_03.php" method="post">
                pırasa yemeğini seviyor musunuz:
                <input type="checkbox" name="pirasa" value="evet"><br>
                <input type="submit" value="onayla">
            </form>
        </body>
    </html>
    
     
  10. KaravanaBatu

    KaravanaBatu Daimi Üye

    Kayıt:
    14 Haziran 2004
    Mesajlar:
    2,092
    Beğenilen Mesajlar:
    0
    Şehir:
    İskenderun
    roksan checkbox seçili olmadığında uyarı veriyor yine. Uyarıda 2.satırda yani:
    PHP:
    $pirasa $_POST['pirasa'];
    bu satırda diyor.
     
  11. roksan

    roksan Daimi Üye

    Kayıt:
    16 Aralık 2007
    Mesajlar:
    876
    Beğenilen Mesajlar:
    0
    PHP'nin varsayılan konfigürasyon ayarlarında herhangi bir hatayla karşılaşmadım, sürüm 5...

    Fakat sanırım siz 4 kullanıyorsunuz, bununla ilgili olabilir...

    PHP kısmını bir de şu şekilde deneyebilirsiniz:

    PHP:
    <?php 
        
    if($_POST['$pirasa'] == "evet") { 
            echo 
    "Siz Pırasa'yı seviyorsunuz."
        } else { 
            echo 
    "Siz Pırasa'yı sevmiyorsunuz."
        } 
    ?>
    ...
     
  12. Ferhat Ozdemir

    Ferhat Ozdemir Daimi Üye

    Kayıt:
    14 Nisan 2006
    Mesajlar:
    3,268
    Beğenilen Mesajlar:
    3
    Meslek:
    Electronics and Computer Engineer
    Şehir:
    Texas
    Benim verdiğim kodda @ işaretini sormuştun. onun konma sebebi hatayı onlemekti zaten. Öyle yapsaydın.
     
  13. akyor35

    akyor35 Daimi Üye

    Kayıt:
    7 Nisan 2005
    Mesajlar:
    1,510
    Beğenilen Mesajlar:
    0
    Şehir:
    İstanbul
    hata demeyelimde uyarı diyelim
     
  14. rani3l

    rani3l Üye

    Kayıt:
    19 Nisan 2005
    Mesajlar:
    221
    Beğenilen Mesajlar:
    0
    Meslek:
    talebe
    @ hataları önlemekte de kullanılır. Mesela klasör yok hatası..

    Bu arada sorun gibi bir sözcük dururken bu basit soruna, sanki sorunlar dizisiymiş ya da felsefi bir konuymuş gibi yaklaşmanı saygıyla karşıladım,devam.