PHP联系表单发送空数据

时间:2012-07-08 08:25:11

标签: php forms html5

我正在尝试创建一个与计算机和移动设备兼容的HTML5联系表单,当我点击发送邮件时,它会跳转到一个空白的白色屏幕。我收到了一封电子邮件但它不包含任何信息。我是PHP的新手。

www.rare1.ca/test:

<!DOCTYPE html>
<html>
<head>
<title>Responsive HTML5/CSS3 template</title>
<meta charset="utf-8" />
<meta name = "viewport" content = "width=device-width, maximum-scale = 1, minimum-    scale=1" />
<link rel="stylesheet" type="text/css" href="css/default.css" media="all" />
<link rel="stylesheet" href="css/flexslider.css" type="text/css" />
<link href='http://fonts.googleapis.com/css?family=PT+Sans' rel='stylesheet' type='text/css' />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">    </script>
<script src="js/jquery.flexslider.js"></script>
<script src="js/default.js"></script>
<!--[if lt IE 9]>
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <script src="js/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div id="pagewidth">
    <header id="header">
        <div class="center">
            <nav id="mainNav">
                <ul>
                    <li class="active"><a href="#pagewidth"><span>gallery</span></a></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li></li>
                    <li><a href="#contactUs"><span>contact us</span></a></li>
                </ul>
            </nav>
        </div>
    </header>
    <div id="content">
        <section class="row">
            <div class="center">
              <h1><img src="img/logo.gif" width="142" height="78"></h1>
                <strong class="subHeading">Coming soon</strong>
                <div class="gallery">
                    <ul class="slides">
                        <li><img src="img/img-gallery.jpg" alt="image" /></li>
                        <li><img src="img/img-gallery2.jpg" alt="image" /></li>
                        <li><img src="img/img-gallery3.jpg" alt="image" /></li>
                    </ul>
              </div>
                <div class="buttons"></div>
          </div>
        </section>
        <section id="contactUs" class="row grey">
            <div class="center">
                <h1>Contact Us</h1>
                <strong class="subHeading">lorem ipsum dolor sit amet, consectetur adipiscing elit</strong>
                <div class="columns">
                    <div class="half">
                        <form action="sendemail.php" class="form">
                            <fieldset>
                                <h2>Feedback form</h2>
                                <div class="formRow">
                                    <div class="textField"><input type="text" name="Name" id="name" placeholder="Your name ..." /></div>    
                                </div>
                                <div class="formRow">
                                    <div class="textField"><input type="text" name="Email" id="email" placeholder="Your Email ..." /></div>
                                </div>
                                <div class="formRow">
                                    <div class="textField"><textarea name="Message" cols="20" rows="4" placeholder="Your message ..."></textarea> </div>
                                </div>
                                <div class="formRow">
                                    <button class="btnSmall btn submit right">
                                                <span>Send Message</span>
                                    </button>
                                </div>
                            </fieldset>
                        </form>
                    </div>
                    <div class="half">
                        <h2>How to find us</h2>
                        <div id="map">
                            <div class="imgHolder"><img src="img/map.jpg" alt="google map" /></div>
                        </div>
                    </div>
                </div>
            </div>
        </section>
    </div>
    <footer id="footer">
        <div class="center">

        </div>
    </footer>
</div>
</body>
</html>

<?php

// This is the script for sending email.


// change the email address below to your own email address.
$mailTo = 'info@rare1.ca';


$name = htmlspecialchars($_POST['Name']);
$mailFrom = htmlspecialchars($_POST['Email']);
$message_text = htmlspecialchars($_POST['Message']);

$headers  = "From: $name <$mailFrom>\n";
$headers .= "Reply-To: $name <$mailFrom>\n";

$message = $message_text;

mail($mailTo, $subject, $message, $headers );

?>

3 个答案:

答案 0 :(得分:3)

点击“提交”后,系统会将您重定向到sendemail.php。该页面没有内容,您可以从代码中轻松查看。这就是为什么你在点击提交后登陆的页面是空白的。

希望,这有助于:)

更新:

你可以选择这样的东西:

if(mail($mailTo, $subject, $message, $headers )) 
   echo 'Mail successfully sent!';
else
   echo 'Sorry! Something went wrong...';  

有了这个,你的页面就会有一些内容,看起来就不会发生任何事情了。

答案 1 :(得分:1)

在您的PHP脚本中,您正在发送邮件,但之后您什么都不做!,没有回音。

发送邮件后在最后添加:

echo "Mail sent";

你会看到该消息出现。

修改

为了将消息传递给hompage,您需要将消息放入会话中,然后重定向到hompage:

$_SESSION['myMsg'] = "some message";
header("location: /hompage.php");

现在,在hompage上,在脚本中添加要添加消息的位置:

if (isset($_SESSION['myMsg'])){
    $message = $_SESSION['myMsg'];
    //do something with message
}

完成后清理会话也是个好主意,你可以使用:

session_unset(); // clears all session varaibles

unset($_SESSION['myVar']); // clear specific variable

答案 2 :(得分:0)

根据我的评论,您使用的是带有get方法的表单,因此它会在您的网址的查询字符串中创建变量。可以使用$_GET访问这些内容,而不是$_POST

虽然您可以将$_POST引用切换为$_GET - 但这样可行 - 这不是一个好主意。 post操作适用于页面刷新不应重复的事件,如发送电子邮件或修改数据库。因此,解决方案是修改您的表单。

为此,请改为改变您的表格:

<form action="sendemail.php" class="form" method="post">