Onay sorgu dizesi (PHP)

5 Cevap

Ben örnek dnm.php? Var = 1 için, bir sorgu dizesi kullanın.

Kullanıcı başka bir dize gibi bundan sonra bir şey yazarsanız Nasıl kontrol edebilirsiniz ...

Ben başka bir string (querystring) "var" sorgu dizesi izlerseniz index.php yönlendirmek için çalışın.

Bunu kontrol etmek mümkün mü?

Örneğin:

test.php?var=12134 (This is a good link..) test.php?a=23&var=123 (this is a bad link, redirect to index..) test.php?var=123132&a=23 (this is a bad link, redirect to index..)

5 Cevap

Ben tam olarak ne istediğinizi anlıyorum emin değilim, ama parametrelerin konumlandırma ilgilenen değilseniz bu çalışması gerekir:

if ( isset($_GET['var']) && count($_GET) > 1 ) {
    //do something if var and another parameter is given
}

$_SERVER['QUERY_STRING'] bak.

: Tom Haigh’s answer, ayrıca beklediğiniz argümanlar farkını almak ve aslında olsun bu olabilir benzer

$argKeys = array_keys($_GET);
$additionalArgKeys = array_diff($argKeys, array('var'));
var_dump($additionalArgKeys);

dnm.php? a = 23? var = 123 (Bu endekse yönlendirmek, kötü bir bağlantı ..)

Bu durumda, yalnızca adlandırılmış gönderilen bir değişken, "a" değeri içeren "a?var=123", bu nedenle sizin için bir sorun olmamalı var.

dnm.php? var = 123132 & a = 23 (Bu endekse yönlendirmek, kötü bir bağlantı ..)

Bu durumda iki gönderilen değişkenleri, ("a" ve "var") var.

Genel olarak gönderilen kaç değişkenleri görmek ve count($_GET) ile, buna göre hareket $_GET dizi kontrol edebilirsiniz.

Ben istenmeyen parametrelerin kurtulmak için çalışıyoruz düşünüyorum. Bu genellikle güvenlik nedenleriyle yapılır.

Eğer kullandığınız her değişkeni preinitalize ve sadece $ _GET ['var'], $ _POST ['var'] veya $ _REQUEST ['var'] değişkenleri kullanmak, ancak, bir sorun olmaz.