我可以使用$ _POST& $ _GET同时?

时间:2011-08-26 11:03:53

标签: php

我有以下表格:

<form action="doThis.php?warehouse=12" method="post">
  <input name="field1" type="text" />
  <input name="field2" type="text" />
</form>

doThis.php

$field1 = mysql_real_escape_string($_POST['field1'], $mysql);
$field2 = mysql_real_escape_string($_POST['field2'], $mysql);

$warehouse = $_GET['warehouse'];
if ( !someTableNameValidation($warehouse) ) {
    someErrorHandling();
}
$qry = "INSERT INTO table".$warehouse." ( field1, field2 ) VALUES( '$field2', '$field2') ";
$result = @mysql_query($qry, $mysql);

如您所见,我使用$ _POST从表单中获取数据,使用$ _GET获取用于表示表号的变量$warehouse

我可以同时使用$ _POST&amp; $ _GET同时?这种用法是否正确?

5 个答案:

答案 0 :(得分:4)

是的,你可以。 $_GET['warehouse']将从提交的POST值中的查询字符串$_POST变量中获取。

答案 1 :(得分:3)

是的,这是可能的。但您也可以使用隐藏字段:

<form action="doThis.php">
<input type="hidden" name="warehouse" value="12" />
<input name="field1" type="text" />
<input name="field2" type="text" />

请注意,您的代码非常容易受到sql注入

答案 2 :(得分:1)

是的,我总是这样做。

另请注意,您永远不应该使用mysql_query。搜索php PDO。更不用说用于抑制错误的可怕@

答案 3 :(得分:1)

是的,不过应该是:

$field1 = $_POST['field1'];
$field2 = $_POST['field2'];

$warehouse = $_GET['warehouse'];

$qry = "INSERT INTO table".$warehouse." ( field1, field2 ) VALUES ('".mysql_real_escape_string($field2)."', '".mysql_real_escape_string($field2)."')";
$result = @mysql_query($qry);

(固定语法)

答案 4 :(得分:0)

我经常一起使用POST和GET,以便PHP方可以知道它是正常的表单提交还是通过AJAX。

<form action='dest.php'>
.
.
.

VS

ajaxSubmit( 'dest.php?a=1', ... );