我有以下表格:
<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同时?这种用法是否正确?
答案 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', ... );