检测在php中提交的表单

检测在php中提交的表单,php,Php,什么是可靠的方法来检测在如下情况下提交的表单?所有提交到同一页面,该页面又根据提交的表单进行操作。已经指出了这种做法的许多缺点。最重要的是,即使是查询字符串也使用相同的脚本。你建议怎么做 表格一有两个输入字段,表格二有三个 <?php if ( isset($_POST['valOne']) && isset($_POST['valTwo']) && isset($_POST['valThree']) ) { echo 'This is form

什么是可靠的方法来检测在如下情况下提交的表单?所有提交到同一页面,该页面又根据提交的表单进行操作。已经指出了这种做法的许多缺点。最重要的是,即使是查询字符串也使用相同的脚本。你建议怎么做

表格一有两个输入字段,表格二有三个

<?php

if ( isset($_POST['valOne']) && isset($_POST['valTwo']) && isset($_POST['valThree']) ) {
    echo 'This is form three';

} elseif ( isset($_POST['valOne']) && isset($_POST['valTwo']) ) {
    echo 'This is form two';
} else {
    echo 'Neither one or two';
}

$formOne  = '<form method="post" action="http://localhost/dev/form.php">';
$formOne .= 'Name: <input type="text" name="valOne" value="Foo" autocomplete="off"><br>';
$formOne .= 'Description: <input type="text" name="valTwo" value="Bar" autocomplete="off"><br>';
$formOne .= '<input type="hidden" name="secretVal" value="secretKey">';
$formOne .= '<input value="Add This" type="submit">';
$formOne .= '</form>';

$formTwo  = '<form method="post" action="http://localhost/dev/form.php">';
$formTwo .= 'Name: <input type="text" name="valOne" value="Foo" autocomplete="off"><br>';
$formTwo .= 'Description: <input type="text" name="valTwo" value="Bar" autocomplete="off"><br>';
$formTwo .= 'URL: <input type="text" name="valThree" value="Tar" autocomplete="off"><br>';
$formTwo .= '<input type="hidden" name="secretVal" value="secretKey">';
$formTwo .= '<input value="Add This" type="submit">';
$formTwo .= '</form>';

$formThree = '<a href="http://localhost/dev/form.php?do=getIt">This is GET. Get it?<a/>';

echo $formOne;
echo '<br>';
echo $formTwo;
echo '<br>';
echo $formThree;

?>

您可以为这两个表单使用不同名称的隐藏输入,在服务器端您可以使用
if(isset($\u POST['hidden\u for_form1'])
if(isset($\u POST['hidden\u for_form2'])
您可以为这两个表单使用不同名称的隐藏输入,在服务器端您可以使用
if(isset)($\u POST['hidden\u for_form1'])
if(isset($\u POST['hidden\u for_form2'])
添加隐藏输入:

<input type="hidden" name="form" value="one">
<?switch($_POST['form']){
  case "one":
  ... 
 ?>

您也可以将名称和值指定给提交按钮,但如果用户按enter键,则无法执行此操作添加隐藏输入:

<input type="hidden" name="form" value="one">
<?switch($_POST['form']){
  case "one":
  ... 
 ?>


您还可以将名称和值分配给submit按钮,但如果用户按enter键,则该操作无效。您可以向表单操作添加表单id参数

 <form method='post' action='http://localhost/dev/form.php?form_id=1'>


然后在代码中打开
$\u GET[“form\u id”]

可以将form\u id参数添加到表单操作中

 <form method='post' action='http://localhost/dev/form.php?form_id=1'>

然后在代码中打开
$\u GET[“form_id”]

我将使用隐藏输入

<input type="hidden" name="form" value="form1">

还有一点需要注意的是,是否有任何理由将表单代码存储在变量中?

我会使用隐藏输入

<input type="hidden" name="form" value="form1">


还有一点需要注意的是,您将表单代码存储在变量中有什么原因吗?

您需要在submit中指定一些名称,例如:

<input type="submit" name="form1" value="Add This">
<input type="submit" name="form2" value="Add This">
<input type="submit" name="form3" value="Add This">

您需要在submit中指定一些名称,例如:

<input type="submit" name="form1" value="Add This">
<input type="submit" name="form2" value="Add This">
<input type="submit" name="form3" value="Add This">

给按钮一个名称并在post中检查它?HTML
PHP
if(isset($\u post['form1'))
如果用户在表单中按enter键,按钮方法将无效给按钮一个名称并在post中检查它?HTML
PHP
if(isset($\u post['form1'))
如果用户在formIt中按enter键,则按钮方法t不起作用。formIt存储在每页包含的文件中。然后我只需执行echo。您可以将表单存储在单独的php文件中(例如form1.php)然后使用“include‘form1.php’;”它存储在一个包含在每个页面上的文件中。然后我只需执行echo。您可以将表单存储在一个单独的php文件(例如form1.php)中,然后使用“include‘form1.php’;”