'我已经把一个表单放在一起,允许人们在线注册一个事件。表单对输入进行了一些验证,并将$_POST值发送给插入表单,插入表单发送MYSQL数据库的数据。
但是我只想发送数据,如果电子邮件和确认电子邮件匹配。如果匹配,则将$_POST数据发送给insert表单;如果它们不匹配,则表示给用户。
Stack overflow (Oct 27 2012)建议:<form action =<?php echo $action; ?>
".
我无法让以下代码影响表单动作:
<?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值是否正确echo语句遵循if语句的逻辑我尝试使用不同的重定向来代替$action,但那不起作用
我将感谢任何建议
更新:
基于你问题的更新。也许你可以用这个?
if ($_POST['email'] !== $_POST['emailconf'])
{
//echo "They are not equal";
include("serraInsertForm.php");
}
else
{
//echo "They are equal";
include("serraRegFormComplete.php");
}
这将允许您将表单保存在"InsertForm"文件中,并将完成代码保存在"FormComplete"文件中。
原始: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 ...
}