-4

我正在尝试创建一个与计算机和移动设备兼容的 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 );

?>
4

3 回答 3

3

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

希望这有帮助:)

更新:

你可以这样做:

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

有了这个,您的页面将有一些内容,并且看起来不再像什么都没发生一样。

于 2012-07-08T08:27:32.787 回答
1

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

发送邮件后在末尾添加:

echo "Mail sent";

您会看到该消息出现。

编辑

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

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

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

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

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

session_unset(); // clears all session varaibles

unset($_SESSION['myVar']); // clear specific variable
于 2012-07-08T08:29:30.403 回答
0

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

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

为此,请修改您的表单:

<form action="sendemail.php" class="form" method="post">
于 2012-07-08T09:41:42.730 回答