为什么这个PHP代码重定向表单不起作用?

时间:2017-02-21 17:37:05

标签: php redirect contact-form

我之前在另一个目标网页上使用过这个PHP代码并且无法更好地工作,但现在我已经在子域上托管的着陆页上使用它了,而且它已经在子域上使用了它。不工作归档index.php和thank-you-page.html都存储在同一文件夹中。

继承代码。

<div id="forma" class="col-2">
        <?php
            $action=$_REQUEST['action'];
            if ($action=="")
            {
            ?>
        <form action="" method="POST" enctype="multipart/form-data">
        <input type="hidden" name="action" value="submit">
            <p>Nombre</p> <input type="text" name="name"/>
            <p>Apellidos</p> <input type="text" name="surname"/>
            <p>Email</p> <input type="text" name="email">
            <p>Tel&eacute;fono</p> <input type="text" name="phone" maxlength="12"/>
            <input type="submit" value="Enviar" name="submit"/><input type="reset" value="Limpiar">
            <?php
            include "include/thank-you-page.html";
            ?>
        </form>
        <?php
        }
         else if($_POST['email'] == '' or !preg_match("/^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/",$_POST['email'])){
        echo "Favor de ingresar un correo válido <a href=\"\">en la forma</a>";}
        else
        {
        $name=utf8_decode($_POST['name']);
        $surname=utf8_decode($_POST['surname']);
        $email=$_POST['email'];
        $phone=$_POST['phone'];
        $message="
        APC Back-UPS Landing page:
        Nombre: $name
        Apellidos: $surname 
        e-mail: $email 
        telefono: $phone";
        if(($name=="")||($email=="")||($phone==""))

        {
            echo "Favor de llenar los campos requeridos <a href=\"\">en la forma</a>";
        }

        else
        {
        $from="From: $name<$email>\r\nReturn-path: $email";
        $subject = "Landing page Back-UPS";
        mail("ajauregui@sps.mx", $subject, $message, $from);
        header('Location: http://www.securepowersolutions.com.mx/backups/thank-you-page.html');
            }
        }
        ?>

关于它为什么没有回答的任何想法?

1 个答案:

答案 0 :(得分:1)

来自header的文档:

  

请记住,在发送任何实际输出之前,必须通过普通HTML标记,文件中的空行或PHP来调用header()。读取代码是一个非常常见的错误with include,或require,函数或其他文件访问函数,并在调用header()之前输出空格或空行。使用单个PHP / HTML文件时存在同样的问题。

在调用标题之前,您有HTML输出。