我有以下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;
这是正常的吗? 这没有任何意义!!
非常感谢任何帮助澄清我的疑问。
答案 0 :(得分:1)
由于您在表单操作属性中使用POST方法,因此
<form name="login" action="http://oz-local.com:8080/_admin/login.php?action=process" method="post">
您可以使用$_POST
获取所有值,但不需要$_GET
因为$_POST
使用$_GET
比double 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。