【问题标题】:How To Make This Form Work如何使这个表格工作
【发布时间】:2016-03-26 01:06:15
【问题描述】:

我已经为我的网站创建了这个表单并链接了 php,但是当我发送表单时,我收到了电子邮件,但是输入到表单中的任何信息都没有显示在电子邮件中,只有字段。我对此很陌生,所以我为代码不是最好的而道歉。

任何帮助都会很棒。

<?PHP
	
	/* Subject & Email Variables */
	
	$emailSubject = 'Photography Quote';
	$webMaster = 'ryanandelissa@seawardphotography.com';
	
	/* Gathering Data Variables*/
	
	$firstname = $_POST['firstname'];
	$lastname = $_POST['lastname'];
	$email = $_POST['email'];
	$hdyhau = $_POST['hdyhau'];
	$message = $_POST['message'];
	
	$body = <<<EOD
<br><hr><br>
First Name: $firstname <br>
Last Name:  $lastname <br>
Email: $email <br>
How Did You Hear About Us?: $hdyhau <br>
Message: $message <br>
EOD;

	$headers = "From: $email\r\n";
	$headers .= "Content-type: text/html\r\n";
	$headers = mail($webMaster, $emailSubject, $body, $headers);
	
	/* Results Rendered As HTML */
	
	$theResults = <<<EOD
<html>
<head>
<title>Contact Us</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="Contact.css">
<link href='http://fonts.googleapis.com/css?family=Lora' rel='stylesheet' type='text/css'>
<style type="text/css">
	
	/*logo*/

img{
	display: block;
	margin-left: auto;
	margin-right: auto;
	
}

/*navbar*/

#wrap{
	text-align: center;
	font-family: "Lora" serif;
	font-size: 13px;
	font-weight: normal;
	padding-right: 48px;
	padding-bottom: 40px;
	
}

.navbar li a{
	display: block;
}

.navbar li{
	display: inline-block;
	list-style: none;
	text-align: left;
	
}

.navbar a{
	text-decoration: none;
	color: #9c9c9c;
	display: block;
	padding: 8px;
	background-color: white;
}

.navbar li ul{
	position: absolute;
	display: none;
	margin: 0;
	padding: 0;
	height: auto;
	
}

.navbar li:hover, a:hover{
	color: black;
}

.navbar li:hover ul{
	display: block;
}	

.navbar li ul li {
	display: block;
}

h1{
	text-align: center;
	font-family: 'Lora' serif;
	font-size: 25px;
	padding-bottom: 30px;
}

input[type=button]{
	border: 2px solid #9c9c9c;
	background-color: white;
	color: #9c9c9c;	
	display: block;
	padding: 10px;
	width: 100px;
	margin-left: auto;
	margin-right: auto;
}

input[type=button]:hover{
	background-color: #9c9c9c;
	color: white;
	border: 2px #9c9c9c;
	padding: 10px;
	height: 41px;
}


/*footer*/

footer{
	text-align: center;
	font-family: "Lora" serif;
	font-size: 10px;
	font-weight: normal;
	padding-top: 30px;
}

	
    </style>
</head>
<body>
	    <div class="container">
        <div class="row">
            <div class="col-sm-12 col-md-12">
	            
	            <img src="Images/NewLogoBlack.png" class="img-responsive" width="250px" height="250px">
	        
	        </div>
	         <div class="clearfix visible-sm-block"></div>
      <div class="clearfix visible-md-block"></div>
       <div class="clearfix visible-lg-block"></div>
	        
	        
            <div class="col-sm-12 col-md-12">

			<div id="wrap">
			<ul class="navbar">
	
		  <li><a href="index.html">HOME</a></li> 
		 <li><a href="">PORTFOLIO</a>
			<ul>
			   <li><a href="wedding.html">WEDDING</a></li>
			   <li><a href="Love.html">LOVE</a></li>
			   
			</ul>         
		 </li>
		 <li><a href="#">ABOUT</a>
			<ul>
			   <li><a href="AboutUs.html">US</a></li>
			</ul>         
		 </li>
		 <li><a href="#">BLOG</a>
		 	<ul>
			 	<li><a href="NewBlogPage3.html">STORIES</a></li>
			 	<li><a href="Archive.html">ARCHIVE</a></li>
		 	</ul>
		 </li>		  		
		 <li><a href="Contact.html">CONTACT</a></li>
	  </ul>			
  	</div>			

	            
</div>
<div class="clearfix visible-sm-block"></div>
<div class="clearfix visible-md-block"></div>
<div class="clearfix visible-lg-block"></div>
       
       
       
<div class="col-sm-12 col-md-12">
	       
<h1>Thank you for your inquiry. We'll be in contact shortly.</h1>
	       
</div>   
<div class="clearfix visible-sm-block"></div>
<div class="clearfix visible-md-block"></div>
<div class="clearfix visible-lg-block"></div>
       
<form action="Instagram.html">
<input type="button" value="HOME">
</form>	


<div class="clearfix visible-sm-block"></div>
<div class="clearfix visible-md-block"></div>
<div class="clearfix visible-lg-block"></div>
         
	
	       
       
       
<div class="col-sm-12 col-md-12"><footer>All images Copyright © Seaward Photography 2016. Based in San Diego, California. Available for destinations worldwide.</footer></div>
<div class="clearfix visible-sm-block"></div>
<div class="clearfix visible-md-block"></div>
<div class="clearfix visible-lg-block"></div>

            




<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"</script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
</body>
</html>
EOD;
echo($theResults);


          		

?>
/*logo*/

img{
	display: block;
	margin-left: auto;
	margin-right: auto;
	
}

/*navbar*/

#wrap{
	text-align: center;
	font-family: "Lora" serif;
	font-size: 13px;
	font-weight: normal;
	padding-right: 48px;
	padding-bottom: 40px;
	
}

.navbar li a{
	display: block;
}

.navbar li{
	display: inline-block;
	list-style: none;
	text-align: left;
	
}

.navbar a{
	text-decoration: none;
	color: #9c9c9c;
	display: block;
	padding: 8px;
	background-color: white;
}

.navbar li ul{
	position: absolute;
	display: none;
	margin: 0;
	padding: 0;
	height: auto;
	
}

.navbar li:hover, a:hover{
	color: black;
}

.navbar li:hover ul{
	display: block;
}	

.navbar li ul li {
	display: block;
}

/*image*/

.contact img{
	width: 70%;
}


/* form */

.form label{
	padding-top: 30px;
	padding-left: 400px;
	display: block;
	float: right;
	padding-right: 189px;
	font-family: "Lora" serif;
	font-size: 12px;
	
}


input, textarea{
	font: 1em "Lora" sans-serif;
	width:300px;
	
	
}

textarea{
	vertical-align: top;
	height: 5em;
	resize: vertical;
	
}

input[type=submit]{
	border: 2px solid #9c9c9c;
	background-color: white;
	color: #9c9c9c;	
	display: block;
	padding: 10px;
	width: 100px;
	margin-left: auto;
	margin-right: auto;
}

input[type=submit]:hover{
	background-color: #9c9c9c;
	color: white;
	border: 2px #9c9c9c;
	padding: 10px;
	height: 44px;
}


/*footer*/

footer{
	text-align: center;
	font-family: "Lora" serif;
	font-size: 10px;
	font-weight: normal;
	padding-top: 10px;
	
}
<!DOCTYPE html>
<html>
<head>
<title>Contact Us</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="Contact.css">
<link href='http://fonts.googleapis.com/css?family=Lora' rel='stylesheet' type='text/css'>
<style type="text/css">
	
	img{
		padding-bottom: 30px;
	}
	
	.contact-form{
		padding: 20px;
	}
	
	label{
		font-family: "Lora" serif;
		font-weight: 300;
	}
	
    </style>
</head>
<body>
	    <div class="container">
        <div class="row">
            <div class="col-sm-12 col-md-12">
	            
	            <img src="Images/NewLogoBlack.png" class="img-responsive" width="250px" height="250px">
	        
	        </div>
	         <div class="clearfix visible-sm-block"></div>
      <div class="clearfix visible-md-block"></div>
       <div class="clearfix visible-lg-block"></div>
	        
	        
            <div class="col-sm-12 col-md-12">

			<div id="wrap">
			<ul class="navbar">
	
		  <li><a href="index.html">HOME</a></li> 
		 <li><a href="">PORTFOLIO</a>
			<ul>
			   <li><a href="wedding.html">WEDDING</a></li>
			   <li><a href="Love.html">LOVE</a></li>
			   
			</ul>         
		 </li>
		 <li><a href="#">ABOUT</a>
			<ul>
			   <li><a href="AboutUs.html">US</a></li>
			</ul>         
		 </li>
		 <li><a href="#">BLOG</a>
		 	<ul>
			 	<li><a href="NewBlogPage3.html">STORIES</a></li>
			 	<li><a href="Archive.html">ARCHIVE</a></li>
		 	</ul>
		 </li>		  		
		 <li><a href="Contact.html">CONTACT</a></li>
	  </ul>			
  	</div>			

	            
            </div>
             <div class="clearfix visible-sm-block"></div>
      <div class="clearfix visible-md-block"></div>
       <div class="clearfix visible-lg-block"></div>
	
	<div class="col-sm-12 col-md-12">
	        <div class="img-list">    
	            
	         
    
      <img src="Images/ContactImage.jpg" class="img-responsive" width="750px" height="auto" />
          
      

	        </div>    
            </div>
             <div class="clearfix visible-sm-block"></div>
             <div class="clearfix visible-md-block"></div>
       <div class="clearfix visible-lg-block"></div>	
       
       
       	       
	       <form method="post" action="Contact%20Form.php" enctype="text/plain">
   <div class="contact-form">
    
         
	    <div class="row"> 
		<div class="col-md-6 ">     
        <div class="form-group">
            <label for="firstname">First Name</label>
            <input type="text" class="form-control" id="firstname">
        </div>
        </div>
        <div class="col-md-6">
        <div class="form-group">
            <label for="lastname">Last Name</label>
            <input type="text" class="form-control" id="lastname">
        </div>
        </div>
        <div class="clearfix visible-md-block"></div>
        <div class="col-md-12">
        <div class="form-group">
            <label for="email">Email</label>
            <input type="email" class="form-control" id="email">
        </div>
        <div class="clearfix visible-md-block"></div>
        <div class="form-group">
            <label for="hdyhau">How Did You Hear About Us?</label>
            <input type="text" class="form-control" id="hdyhau">
        </div>
        <div class="form-group">
	        <label for="message">Message</label>
            <textarea class="form-control" rows="4" id="message"></textarea>
            </div>		


        <div class="form-group">
        <div class="col-sm-8 col-sm-offset-2">
            <input id="submit" name="submit" type="submit" value="SEND!" class="btn btn-primary">
        </div>
    </div> 
	    </div>   
    </form>

	
	
            <div class="col-sm-12 col-md-12"><footer>All images Copyright © Seaward Photography 2016. Based in San Diego, California. Available for destinations worldwide.</footer></div>
            <div class="clearfix visible-sm-block"></div>
             <div class="clearfix visible-md-block"></div>
       <div class="clearfix visible-lg-block"></div>

            




    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"</script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"
</body>
</html>          

【问题讨论】:

  • 我假设其他 PHP 页面/脚本可以工作?如您的服务器已正确设置和配置以运行 PHP?
  • 2 想法: 1 - 您的 PHP 文件名是否以 .php 结尾? 2 - 尝试将开始标签设为小写,如&lt;?php
  • 您的代码对我有用(大写 &lt;?PHP 和所有代码(似乎对我的系统没有影响))。您的代码有些奇怪(为什么将您的 mail 调用分配给 $headers?),但一般来说似乎很好(我什至收到了电子邮件)。我认为您有服务器配置问题。你能确认其他 PHP 脚本在你的服务器上工作吗?
  • 您有错误:&lt;form&gt; 没有 action,嵌套在另一个 &lt;form&gt; 中,缺少结束标签(用于脚本等),widthheight 属性的值错误在 img 元素中,标签中 for 属性的未定义值等等。请先更正所有错误,如果问题仍然存在,请在此处查看。
  • @Davis 感谢您的帮助。我为 php 配置了我的服务器,现在我收到了电子邮件。但是新的问题出现了。当我收到电子邮件时,它没有显示任何放入表格的信息。你能帮我解决这个问题吗?

标签: php html css


【解决方案1】:

把它放在一个答案中,这样它就可以看起来有一个解决方案。 ;)

您的代码适用于我(大写 &lt;?PHP 和所有代码(似乎对我的系统没有影响))。您的代码有些奇怪(为什么将您的邮件调用分配给 $headers?),但一般来说似乎很好(我什至收到了电子邮件)。我认为您的服务器配置有问题。


是的,您在评论中提到的问题实际上非常简单。在您的表单中,您的输入元素上的 name 属性是“firstname”、“hdyhau”等,但在您的 PHP 中,您可以这样做:

$firstnameField = !empty($_POST['firstname']) ? $_POST['firstname'] : 'n/a';
$lastnameField = $_POST['lastname'];
$emailField = $_POST['email'];
$hdyhauField = $_POST['hdyhau'];
$messageField = $_POST['messagename'];

然后通过它们的name 值引用它们,而不是您刚刚将它们复制到的变量:

    $body = <<<EOD
<br><hr><br>
First Name: $firstname <br>
Last Name:  $lastname <br>
Email: $email <br>
How Did You Hear About Us?: $hdyhau <br>
Message: $message <br>
EOD;

只需将分配给$firstname 的内容更改为$firstnameField$body 分配中的变量更改为$firstnameField,等等。


您可以通过在发送电子邮件之前执行以下操作来验证表单中是否确实包含某些内容:

$firstname = !empty($_POST['firstname']) ? $_POST['firstname'] : 'n/a';
...
$message = !empty($_POST['message']) ? $_POST['message'] : 'n/a';

只需确保您在$_POST 中访问的值与您在表单的name="" 属性中使用的值相匹配。

【讨论】:

  • @R.Seaward,你能像现在一样用你的代码编辑你原来的问题吗?我将编辑此答案,以验证是否确实传递了某些内容,而不是在表单中没有值的情况下提交表单。
  • 我已经将上面的代码编辑成了我现在所拥有的。希望这有助于@Davis
  • @R.Seaward 请记住,由于您注入了标头,因此有人可能会将您的表单变成垃圾邮件服务。请阅读Escape string to use in mail() 以保护您的表格。
  • @R.Seaward,电子邮件完全空白?里面什么都没有?或者只是用户提供的字段? h2ooooooo 提出了一个很好的观点;您可能想在标题中使用 $email 之前对其进行过滤,或者甚至不使用他们的电子邮件地址作为“发件人”,只需将其包含在 $message 中,并在回复他们时注意使用他们的电子邮件正文中的地址,而不是在您的电子邮件客户端中点击“回复”。
  • 当电子邮件发送时,它只提供以下字段:名字、姓氏等,但在@Davis 表单的字段中实际上没有写任何内容,我一定会使用他们的实际电子邮件和不是他们发给我的那个。
猜你喜欢
  • 1970-01-01
  • 2015-02-15
  • 1970-01-01
  • 2016-01-04
  • 2018-10-21
  • 1970-01-01
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
相关资源
最近更新 更多