如果其他脚本=='POST',则运行$ _SERVER ['REQUEST_METHOD'=='POST']来防止脚本运行

时间:2012-11-13 14:52:14

标签: php

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

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

我的另一种形式的声明。我尝试添加:

if (isset($varOne)) {}

声明,使用:

$varOne = $_POST['varOne'];

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

2 个答案:

答案 0 :(得分: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
  }
}

答案 1 :(得分: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

     }

   }
?>