İSTEK dizi boşaltmak nasıl?

4 Cevap php

Benim çerçeve için, i güvenlik nedenleriyle / devre dışı İSTEK dizi boşaltmak isteyen ve kullanıcıların sadece bu POST, GET veya COOKIE olarak uygun diziler kullanmalısınız. Ama bunu nasıl bilmiyorum. Hatta aşağıdaki gibi bir şey çalışmak için görünmüyor, POST, vb hatta GET boşaltır

$temp_get = $_GET;
$temp_post = $_POST;
$temp_cookie = $_COOKIE;
// empty request array
$_REQUEST = array();
$_GET = $temp_get;
$_POST = $temp_post;
$_COOKIE = $temp_cookie;

4 Cevap

Burada yapılacak doğru şey onların doğru yöntemi ile $ _REQUEST kullanarak tüm bu fonksiyonlar / değişkenleri değiştirmektir. Sözleşmelere sadık, veri eklemek için, POST çekmek için, ve $ _COOKIE unutma GET.

$ _REQUEST Girdi almayın Eğer kendinize sorun bir çok yarayacaktır. Her zaman güvenli olması için, sadece tahrif olabilecek girdi her türlü kaçmak için hatırlıyorum (_GET, POST, _COOKIE, ve o pis _SERVER değişkenleri bazı unutmayın).

Bunu deneyin

unset($_REQUEST);

Böyle bir çözüm çalışmak istiyorsunuz?

<?php

class Request
{
    public static $get, $post, $cookie;

    public function __construct()
    {
    	self::$get = $_GET;
    	self::$post = $_POST;
    	self::$cookie = $_COOKIE;
    }
}

new Request();
$_REQUEST = array();
print_r(Request::$get);

Sen dnm.php giderek test edebilirsiniz? A = b & c = d

Acaba $_GET döngü, $_POST ve $_COOKIE, takas sonra, kendi veri kaydetme $_REQUEST?

$tget = array();
foreach($_GET as $k=>$v)
{
    $tget[$k] = $v;
}

$tpost = array();
foreach($_POST as $k=>$v)
{
    $tpost[$k] = $v;
}

$tcookie = array();
foreach($_COOKIE as $k=>$v)
{
    $tcookie[$k] = $v;
}

unset($_REQUEST);

$_GET = $tget;
$_POST = $tpost;
$_COOKIE = $tcookie;