`我已经整理了一个允许人们在线注册活动的表格。表单对输入进行了一些验证,并将$ _POST值发送到插入表单,插入表单发送MYSQL数据库的数据。它工作正常。
但我只想在电子邮件和确认电子邮件匹配时发送数据。如果它们匹配,表单将$ _POST数据发送到插入表单;如果他们不匹配,则表单会显示给用户。
堆栈溢出(2012年10月27日)建议:<form action =<?php echo $action; ?>
&#34;。
我无法获得以下代码来影响表单操作:
<?php
print_r($_POST);
if($_POST['email'] !== $_POST['emailconf'])
{
//echo "They are not equal";
$action = "serraInsertForm.php";
}
else
{ //echo "They are equal";
$action = "serraRegFormComplete.php";
}
?>
注意: 我想用php做这个。之前没有使用过javascript。 print_r显示$ _POST值是OK echo语句遵循if语句的逻辑 我尝试使用不同的重定向代替$ action但是没有用
我将不胜感激任何建议
答案 0 :(得分:0)
<强>更新强>
根据您问题的更新。也许你可以用这个?
if ($_POST['email'] !== $_POST['emailconf'])
{
//echo "They are not equal";
include("serraInsertForm.php");
}
else
{
//echo "They are equal";
include("serraRegFormComplete.php");
}
这将允许您将表单保留在&#34; InsertForm&#34;文件,以及&#34; FormComplete&#34;中完成的代码文件。
<强>原始强>
PHP在服务器端处理。因此,用户输入无法在客户端更改表单设置(没有类似Javascript的内容)。这就是说,因为Javascript可以被禁用(或在控制台中修改),我几乎总是为服务器编写某种PHP检查以进行验证。
表单的基本代码如下:
$bShowForm = true;
if (isset($_POST['email']))
{
if ($_POST['email'] == $_POST['emailconf'])
{
$bShowForm = false;
... process form ...
... on process error, set error message and set bShowForm to true ...
... show thank you message ...
}
else
{
... set error message ...
}
}
if ($bShowForm)
{
... if error message, display ...
... form html ...
}
答案 1 :(得分:-2)
<?php
print_r($_POST);
if($_POST['email'] !== $_POST['emailconf'])
{
//echo "They are not equal";
header("location: serraInsertForm.php");
}
else
{ //echo "They are equal";
header("location: serraRegFormComplete.php");
}
?>'