PHP otomatik olarak "GET"

4 Cevap php

Ben şirket için yeni bir web sitesi desiging yaşıyorum ve ben geçmişte tüm sitelerde kullanmış olduğu ne anahtarı navigasyon uygulamak çalışıyorum.

<?php
switch($x) {

default:
include("inc/main.php");
break;

case "products":
include("inc/products.php");
break;

}
?>

Ben? X = ürünler hiçbir şey olmuyor index.php giderken nedense, hala başka bir deyişle URL'den X değişkeni tespit değil, inc / main.php görüntüler. Bu global değişkenler ile ilgili bir şey var mı?

4 Cevap

Evet, PHP yapılandırma correctly var ki inanılmaz güvensiz çünkü register_globals, kapalı.

Sadece koyun:

$x = $_REQUEST['x']

senaryonun üstünde.

Özellikle sadece bu GET HTTP yöntemi için çalışmak istiyorsanız da $_GET kullanabilirsiniz. Bazı insanlar $_REQUEST bu yedeklemek için hiçbir kanıt şekilde güvensiz olduğunu, ancak iddia gördüm.

Bu önceki webhosts kullanılan tüm register_globals ve kod o dayanır gibi görünüyor. Bu, dangerous ayarı ve haklı PHP 6,0 çıkarıldı! switch($_GET['x']) { yerine kullanın.

Bu değişkenleri okumak için $ _GET kullanmalısınız. Orada register_globals adında bir işlev kalktı, ama potansiyel bir güvenlik riski olarak kesinlikle, bu kullanmak için tavsiye etmem.

Eğer bunu yapmak istiyorsanız http://php.net/manual/es/function.extract.php değişkenleri ayıklamak için, ama bu register_globals kullanarak o kadar güvensiz yapar komut, onlar istediğiniz içeriği ile herhangi bir kullanıcı grubu değişkenleri sağlar akılda tutmak kullanabilirsiniz