使用php更改表单操作

时间:2014-03-24 19:12:43

标签: php forms action

`我已经整理了一个允许人们在线注册活动的表格。表单对输入进行了一些验证,并将$ _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但是没有用

我将不胜感激任何建议

2 个答案:

答案 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");          
    }
    ?>'