PHP $ _Request获取价值,但$ _GET不会

时间:2016-04-10 18:11:23

标签: php get request

我有以下HTML表单和PHP:

<form name="login" action="http://oz-local.com:8080/_admin/login.php?action=process" method="post">

<input type="text" name="username" class="form-control" placeholder="Username"/>

<input type="password" name="password" class="form-control" placeholder="Password"/>

<button type="submit" class="btn btn-primary btn-block btn-flat">Sign In</button>

</form>

当我试图获得&#34; action&#34;的价值时使用$_GET['action'],它是空的。但是当我使用$_REQUEST['action']时,我得到了值&#34;进程&#34;。

我使用的脚本是:

echo (isset($_REQUEST['action']) ? 'Yes': 'No');
echo '<br>R: ' . $_REQUEST['action'] . '<br><br>';
echo (isset($_GET['action']) ? 'Yes': 'No');
$gA = $_GET['action'];
echo '<br>gA: ' . $_GET['action'];
echo '<br><br>';
echo (isset($_POST['action']) ? 'Yes': 'No');
$pA = $_POST['action'];
echo '<br>pA: ' . $_POST['action'];
echo '<br><br>';
echo (isset($_COOKIE['action']) ? 'Si': 'No');
$cA = $_COOKIE['action'];
echo '<br>cA: ' . $_COOKIE['action'];
$method = $_SERVER['REQUEST_METHOD'];
echo 'M: ' . $method;

这是正常的吗? 这没有任何意义!!

非常感谢任何帮助澄清我的疑问。

3 个答案:

答案 0 :(得分:1)

由于您在表单操作属性中使用POST方法,因此 <form name="login" action="http://oz-local.com:8080/_admin/login.php?action=process" method="post">

您可以使用$_POST获取所有值,但不需要$_GET 因为$_POST使用$_GETdouble UserInput = 0.0; // <- You need to initialize before using it ... ..... string stopInput = "N"; while (stopInput != "Q")) { Console.WriteLine(""); Console.WriteLine("Please enter a unit to convert, type 'Q' to cancel"); stopInput = Console.ReadLine(); if(stopInput == "Q") break; UserInput = Convert.ToDouble(stopInput); .... } 更安全。

答案 1 :(得分:0)

提交HTML表单时,可以使用两种方法:GET和POST。在HTML中,您已指定表单应使用:

method="post"

这意味着PHP的$_GET数组不会包含它,而是可以通过$_POST['action']$_REQUEST['action']访问它。

$_REQUEST两个 GET和POST值的组合。

答案 2 :(得分:0)

看看下面的

$ _ GET 从查询字符串或您的网址中检索变量。

$ _ POST 从POST方法中检索变量,例如(通常)表单。

$ _ REQUEST 是$ _GET和$ _POST的合并。它检索GET变量以及POST METHOD。