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