0
$a = $_REQUEST['label'];

$a変数に格納されている値が from$_GETか fromかをどのように認識できます$_POSTか? から収集された場合、ユーザーをリダイレクトしたかったの$_GETです。チェックする方法はありますか?PHPは少し難しいです。このようなもの:

$var = recognize($_REQUEST['label']);
if($var == 'GET') { } else { }
4

4 に答える 4

2

変数が割り当てられると、それがどこから来たのかを知ることができなくなります (通常)。

このようなことをすることを検討して$_REQUESTください$_COOKIE

if (isset($_GET['label'])) {
  // do redirect
} elseif (isset($_POST['label'])) {
  // do something else
}

または、その変数をどこから来たのかわからない深い場所に渡す場合は、次のようにします。

class RequestParameter
{
    private $name;
    private $value;
    private $source;

    public function __construct($name)
    {
        $this->name = $name;
        if (isset($_POST[$name])) {
            $this->value = $_POST[$name];
            $this->source = INPUT_POST;
        } elseif (isset($_GET[$name])) {
            $this->value = $_GET[$name];
            $this->source = INPUT_GET;
        }
    }

    public function isFromGet()
    {
        return $this->source === INPUT_GET;
    }

    public function getValue()
    {
        return $this->value;
    }
}

$a = new RequestParameter('label');

if ($a->isFromGet()) {
    // do redircet
}

ただし、これが不要になるようにコードを構造化することをお勧めします。1 つの方法は、POST が行われたかどうかを確認することです。

$_SERVER['REQUEST_METHOD'] === 'POST'
于 2013-02-23T07:07:52.493 に答える
1

チェックif($_GET['label']) { then redirect using header location; }

于 2013-02-23T07:08:30.330 に答える
0

$ _SERVER ['REQUEST_METHOD']を使用することをお勧めします:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // …
}

詳細については、ドキュメントPHPを参照してください

于 2013-02-23T07:52:19.473 に答える
-3

これを試して

if(isset($_REQUEST['label'])){
//redirect
}
于 2013-02-23T07:05:06.303 に答える