我的侧边栏中包含一个计算器表单,位于登录表单下方。当用户提交登录表单时,该操作会触发:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {}
我的另一种形式的陈述。我尝试添加:
if (isset($varOne)) {}
声明,使用:
$varOne = $_POST['varOne'];
来自计算器脚本,但这也不起作用。如果提交登录表单,计算器脚本将继续运行。我们必须如何阻止这种疯狂?!
我的侧边栏中包含一个计算器表单,位于登录表单下方。当用户提交登录表单时,该操作会触发:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {}
我的另一种形式的陈述。我尝试添加:
if (isset($varOne)) {}
声明,使用:
$varOne = $_POST['varOne'];
来自计算器脚本,但这也不起作用。如果提交登录表单,计算器脚本将继续运行。我们必须如何阻止这种疯狂?!
您可以将两者结合起来:
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
}
}
一种可能的方法是通过<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
}
}
?>