如何重定向我的php验证表单到另一个页面


How to redirect my php validation form to another page

我真的很纠结!我有一个联系人表单,我将包括使用jquery插件,并使用php作为备份。这种形式不是所有的方式定制,但我有麻烦了几天现在。当我使用MAMP并单击提交时,验证工作非常完美!在PHP和jquery中。然后将我重定向到谷歌(最终是其他网站)。当我把它上传到公司网站的TEST文件夹下时。为了测试它,我得到了验证,一切都工作得很好。当我在jquery中修复错误后提交时,它会像它应该的那样推送到谷歌。当我拿走jquery来测试php时,验证工作,然后当我点击提交时,它只是停留在相同的index.php页面上!我一直在拉我的头发出来尝试这么多不同的联系验证形式,这一个似乎是最好的工作。我是一个平面设计师,有足够的网络经验,让我在麻烦与PHP!:)有人可以帮助一些建议?

这是我的index.php

<?php include('header_contact.php') ?>

<?php include('testval.php');?>


<div id="section1">
CONTACT FORM
<div id="contact-form">


<!--<form id="contactform" name="contactform" action="<!--?php echo $_SERVER['PHP_SELF']; ?>" method="post" >-->
<form id="contactform" name="contactform" action="index.php" method="post" >

    <!--?php
    if($sent === true) {
        echo "<h2 class='success'>Thanks, your message has been sent successfully</h2>";
    } elseif($hasError === true) {
        echo '<ul class="errorlist">';
        foreach($errorArray as $key => $val) {
            echo "<li>" . ucfirst($key) . " field error - $val</li>";
        }
        echo '</ul>';
    }
    ?>
    -->
    <input name="Name" type="text" id="Name" placeholder="NAME" value="<?php echo (isset($Name) ? $Name : ""); ?>"><span class='text_error'><?php echo $nameErr;?></span>
    <input name="Company" type="text" id="Company" placeholder="COMPANY" value=''>
    <input name="Phone" type="tel" id="Phone" placeholder="PHONE" value='<?php echo htmlentities($Phone);?>'>
    <span class='text_error'><?php echo $phoneErr;?></span>
    <input name="Email" type="Email" placeholder="EMAIL" value="<?php echo (isset($Email) ? $Email : ""); ?>">
    <span class='text_error'><?php echo $emailErr;?></span>
    <input name="webdesign" type="checkbox" value="Yes" /><label>Web Design: </label><br />
    <input name="webhosting" type="checkbox" value="Yes" /><label>Web Hosting: </label><br />
    <input name="wordpressdesign" type="checkbox" value="Wordpress Design" /><labeel>Wordpress Design: </labeel><br />
    <textarea id="Describe" class="mess" name="Describe" type="text" placeholder="DESCRIBE WHAT YOU NEED"><?php echo isset($_POST['Describe'])? $_POST['Describe'] : ''; ?></textarea>
    <span class='text_error'><?php echo $describeErr;?></span>
    <!--?php if(in_array('Describe', $validation)): ?><span class="error"><!--?php echo $error_messages['Describe']; ?></span><!--?php endif; ?>
    <span class='text_error'>
    -->
    <input class="input-upload" type="file" name="Upload File">
    <input name="Human" placeholder="5 + 3 = ?" value="<?php echo isset($_POST['Human'])? 
    $_POST['Human'] : ''; ?>">
    <span class='text_error'><?php echo $humanErr;?></span>
    <!--
    <!--?php if(in_array('Human', $validation)): ?><span class="error"><--?php echo $error_messages['Human']; ?></span><--?php endif; ?>
    -->
    <input id="submit" name="submit" type="submit" value="submit">


</form>



</div><!--END CONTACT FORM-->
</div><!--END SECTION1-->    



<?php include('footer.php') ?>

这是我的testvalue .php

<?php
session_start();
    // define variables and set to empty values
    $nameErr = $emailErr = $phoneErr = $describeErr = $humanErr = "";
    $Name = $Email = $Phone = $Describe = $Human = "";
    $hasError = false;
    $sent = false;
    if(isset($_POST['submit'])) {
        $Name            = trim(htmlspecialchars($_POST['Name'], ENT_QUOTES));
        $Email           = trim($_POST['Email']);
        $Describe        = trim(htmlspecialchars($_POST['Describe'], ENT_QUOTES));
        $Phone           = trim($_POST['Phone']);
        $Email           = trim($_POST['Email']);
        $webdesign       = trim($_POST['webdesign']);
        $webhosting      = trim($_POST['webhosting']);
        $wordpressdesign = trim($_POST['wordpressdesign']);
        $Human           = trim($_POST['Human']);
        $Number          = 8;
        $fieldsArray = array(
            'Name' => $Name,
            'Email' => $Email,
            'Describe' => $Describe,
            'Phone' => $Phone,
            'Human' => $Human
        );
        $errorArray = array();
        foreach($fieldsArray as $key => $val) {
            switch ($key) {
                case 'Name':
                    if(empty($val)) {
                        $hasError = true;
                        $nameErr = "Please enter your name.";
                    }
                case 'Name':
                    if (!preg_match("/^[a-zA-Z ]*$/", ($val))) {
                        $hasError = true;
                        $nameErr = "The value must be alphanumeric."; 
                    }
                    break;
                case 'Phone':
                    if (!preg_match("/^[0-9]+$/", ($val))) {
                        $hasError = true;
                        $phoneErr = "Only numbers and white space allowed.";
                    }
                case 'Phone':
                    if(empty($val)) {
                        $hasError = true;
                        $phoneErr = "Phone is required.";
                    }
                    break;
                case 'Email':
                    if(!filter_var($Email, FILTER_VALIDATE_EMAIL)) {
                        $hasError = true;
                        $emailErr = "Email is required.";
                    } else {
                        $Email = filter_var($Email, FILTER_SANITIZE_EMAIL);
                    }
                    break;
                case 'Describe' :
                    if (strlen($val) < 25) {
                        $hasError = true;
                        $describeErr = "Please enter at least 25 characters. This way I know more specifically what you need!";
                    }
                case 'Describe' :
                    if(empty($val)) {
                        $hasError = true;
                        $describeErr = "Message is required. This way I know what you need!";
                    }
                    break;
                case 'Human':
                    if (!preg_match("/[^'d]?8[^'d]?/", ($val))) {
                        $hasError = true;
                        $humanErr = "Not the right answer";
                    }
                case 'Human':
                    if (!preg_match("/^[0-9]+$/", ($val))) {
                        $hasError = true;
                        $humanErr = "Must be a number";
                    }
                case 'Human':
                    if(empty($val)) {
                        $hasError = true;
                        $humanErr = "Are you human?";
                    }
                    break;
            }
        }
        //CHECK BOX WRITE UP
        if (isset($_POST['webdesign'])) {
            $checkBoxValue = "yes";
             //is checked
        } else {
            $checkBoxValue = "no";
             //is unchecked
        }
        if (isset($_POST['webhosting'])) {
        $checkBoxValue = "yes";
            //is checked
         } else {
            $checkBoxValue = "no";
            //is unchecked
        }
        if (isset($_POST['wordpressdesign'])) {
        $checkBoxValue = "yes";
            //is checked
        } else {
            $checkBoxValue = "no";
            //is unchecked
        }
        //Validation Success!
        //Do form processing like email, database etc here
        if($hasError !== true) {
            $priority = $_POST['priority'];
            $type = $_POST['type'];
            $message = $_POST['message'];
            $formcontent=" From: $Name 'n Company: $Company 'n Email: $Email 'n Phone: $Phone 'n Describe: $Describe 'n Web Design: $webdesign 'n Web Hosting: $webhosting 'n Wordpress Design: $wordpressdesign ";
            $recipient = "creative@griffard.com";
            $subject = "Contact form test with Jquery and PHP";
            $mailheader = "From: $Email 'r'n";
            mail($recipient, $subject, $formcontent, $mailheader);
            header("Location:http://www.google.com");
            exit();       
        }
    }
?><!--END PHP-->

我现在拿出jquery来测试php以使其工作,但是当它在index.php页面时,它就在

的正下方

这是它的代码。

<script type="text/javascript">
jQuery(document).ready(function($) {
    $("#contactform").validate({
        rules: {
            Name: {
                required: true,
                minlength: 4
            },
            Email: {
                required: true,
                email: true
            },
            Describe: {
                required: true,
                minlength: 25
            },
            Phone: {
                required: true,
                number: true,
                minlength: 7,
                maxlength: 15
            },
            Human: {
                required: true,
                number: true,
                maxlength: 1,
                range: [8,8]
            }
        },
        messages: {
            Name: {
                required: "Please enter your name",
                minlength: "Your name seems a bit short doesn't it?"
            },
            Email: {
                required: "We need your email address to contact you",
                email: "Please enter a valid email address"
            },
            Describe: {
                required: "Please enter your message",
                minlength: "Please enter at least 25 characters. This way I know more specifically what you need!"
            },
            Phone: {
                required: "Please enter your phone number",
                number: "Phone has to be numbers",
                minlength: "Your phone number should be longer",
                maxlength: "Number must be less!"
            },
            Human: {
                required: "Are you human?",
                number: "has to be a number",
                maxlength: "That's to long!",
                range: "Please enter the correct number"
            }
        },
        errorElement: "div", //TAKE CONTROL OF ERROR MESSAGE IN CSS
        //IF I CHOOSE TO ADD CSS AND WRAP ERROR WITH BOX
        wrapper: "div", //WRAPPER AROUND THE ERROR MESSAGE
        errorPlacement: function(error, element) {
            error.insertAfter(element);
            error.addClass('message'); //ADD A CLASS TO THE WRAPPER
            /*
            error.css('position', 'absolute');
            error.css('left', offset.left + element.outerWidth());
            error.css('top', offset.top);
            */
    }
    });
});
</script>

任何帮助都非常感谢!

看起来您正在解析您的header_contact.php中的HTML。在重定向之前无法解析HTML内容。尝试切换包含的php文件。

<?php include('testval.php');?>
<?php include('header_contact.php') ?>
<!DOCTYPE HTML>
<html>

<head>
    <meta charset="UTF-8 BOM">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>Contact Form TEST</title>

    <link rel="stylesheet" type="text/css" href="./css/style.css">
    <script type="text/javascript" src="./js/contact.js"></script>
    <script type="text/javascript" src="./js/validation.js"></script>
    <script type="text/javascript" src="//code.jquery.com/jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="./js/jquery.validate.min.js"></script>
    <!--MOO Script-->
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/mootools/1.3.0/mootools-yui-compressed.js"></script>


</head>

<body>

尝试改变您的header位,在您的test.php的最后,看起来像这样的东西:

header("Refresh:0; url=index.php");