0

我的侧边栏中包含一个计算器表单,位于登录表单下方。当用户提交登录表单时,该操作会触发:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {}

我的另一种形式的陈述。我尝试添加:

if (isset($varOne)) {}

声明,使用:

$varOne = $_POST['varOne'];

来自计算器脚本,但这也不起作用。如果提交登录表单,计算器脚本将继续运行。我们必须如何阻止这种疯狂?!

4

2 回答 2

3

您可以将两者结合起来:

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['varOne'])) {
  // calculator button was pressed
}

或者:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  if (isset($_POST['varOne'])) {
    // calculator button was pressed
  } else {
    // probably a login post
  }
}
于 2012-11-13T14:54:48.600 回答
1

一种可能的方法是通过<form>标签的 get 方法传递额外的参数。

<form action="somefile.php?formname=login" method="post"> 

</form>

对于您的计算器表格,您可以输入

 <form action="somefile.php?formname=calculator" method="post"> 

 </form>

最后,在您的表单处理脚本上,您可以检查

<?php 
   if(isset($_GET['formname'])){
     if($_GET['formname']=='login'){
           //get login form fields 
          $someVar=$_POST['fieldname']; //etc etc

     }

     if($_GET['formname']=='calculator'){
           //get calculator form fields 
          $someVar=$_POST['fieldname']; //etc etc

     }

   }
?>
于 2012-11-13T15:01:50.200 回答