Şimdi Ara

PHP kodlarında mı hata yapıyorum?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
639
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • merhabalar, phpnin henüz başlangıç aşamasındaki bir kaç kaynaktan bir şeyler öğrenmeye çalışıyorum. ve kaynağın birinde şu şekilde bir örnek var. bir html sayfası oradaki forma girdiğiniz veri ekrana yazdırılıyor. ancak kendi bilgisayarımda Easyphp yüklü localhosttan çağırıyorum ekranda
    Notice: Undefined variable: Sarkici in c:\program files\easyphp1-8\www\sarkici.php on line 11
    şeklinde notice çıkıyor.
    üzerinde de: En Sevdiginiz sarkicinin ismi :
    yazıyor
    aynı şekilde php destekli bir serverda çalıştırdım orada notice vermio ama istediğim işlem sonucunda ekrana da şu çıktıyı veriyor:
    En Sevdiginiz sarkicinin ismi :
    ekranda benim formda girdiğim veri hiç bir şekilde görünmüyor. ancak browserımın adres çubuğunda ?Sarkici=sarkici+ismi yer alıyor. acaba sorun bende mi daha yeni başladığım için çok basit bir hata da yapıyor olabilirm yardım ederseniz sevinirim.
    sarkici.html dosyası
     
    <HTML>
    <HEAD></HEAD>
    <BODY>
    <FORM METHOD=GET ACTION="sarkici.php">
    En sevdiginiz sarkici kim?

    <INPUT NAME="Sarkici" TYPE="TEXT">
    <BR>
    <BR>
    <INPUT TYPE=SUBMIT>
    </FORM>
    </BODY>
    </HTML>

    sarkici.php dosyası
     
    <HTML>
    <HEAD></HEAD>
    <BODY>
    En Sevdiginiz sarkicinin ismi :
    <?php
    echo $Sarkici;
    ?>
    </BODY>
    </HTML>







  • $Sarkici = $_GET['Sarkici'];


    bunu sarkici.php dosyasının başına eklemelisin.. Nedenine gelince sonuçta burada iki farklı dosya var.. html dosyasındaki formla php dosyasına bişiler aktarmak istiyorsun.. bunun için önce php dosyasına yollanan veriyi almalısın.. Adres çubuğundan gelen verileri GET ile alabilirsin.. Kendini geliştir bkz: POST


    EDIT : Yazım hatası



    < Bu mesaj bu kişi tarafından değiştirildi _qwerty_ -- 28 Şubat 2007; 17:29:34 >
  • _qwerty_ ilgilendiğin için sağol. dediğin kodu <?php kodunun hemen altına yazdım aynı sonuçla karşı karşıyayım bu sefer notice değişti: Notice: Undefined index: $Sarkici in c:\program files\easyphp1-8\www\sarkici.php on line 11
    bu kadar basit bir işi yapamayınca insan karamsarlığa düşüyor :(
  • Eğer GET ve POST gibi dizilerle uğraşmak istemiyorsan php.ini dosyasında register.globals değişkenini "on" yapmalısın.

    Aksi durumda GET ile formu yolluyosan bunu yazdırmak için:

    <?=$_GET['Sarkici']?>
  • quote:

    Orjinalden alıntı: citadel®

    _qwerty_ ilgilendiğin için sağol. dediğin kodu <?php kodunun hemen altına yazdım aynı sonuçla karşı karşıyayım bu sefer notice değişti: Notice: Undefined index: $Sarkici in c:\program files\easyphp1-8\www\sarkici.php on line 11
    bu kadar basit bir işi yapamayınca insan karamsarlığa düşüyor :(




    Hocam ilk mesajımda yazım hatası yapmışım, düzelttim..

    $Sarkici = $_GET['Sarkici']; Bunu ekleyeceksin...

    $Sarkici = $_GET['$Sarkici']; Bunu değil..
  • _qwerty_ ve Arathorn© ilginize teşekkür ederim. $ işaresini kaldırınca düzeldi.
    Arathorn© senin dediğin şeyi yaparsam sanırım bu güvenlikle ilgili.. ne işe yarıyor acaba "on" yapmak?
  • Şimdi şöyle diyelim ki sen SESSION veya POST yardımıyla aldığın verileri SQL cümleciklerinde kullanmak istiyorsun.
    Normalde bu değişkenler $_SESSION veya $_POST dizilerinde tutulur. Ancak register.globals değerini on yaparsak dizi kavramları ortadan kalkar.

    Yani adam adres yerine ?x=100 bile yazsa, bu değişkenin sunucu tarafından işlenmesine neden olur. yani X değeri aslında bir GET değişkeni olsa bile bunu SESSION veya POST değerlerine çevirme hakkını kişiye vermiş olursun. Bu da çok büyük bir güvenlik açığıdır.



    < Bu mesaj bu kişi tarafından değiştirildi Arathorn© -- 28 Şubat 2007; 23:54:52 >
  • o zaman GET ve POST dizileri ile uğraşmak daha mantıklı, cevabın için sağol
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.