2017-07-31 68 views
-2

注册与HTML表单和

<form action="email.php" method="post"> 
 
<div class="icon1"> 
 
<i class="fa fa-user" aria-hidden="true"></i> 
 
<input type="text" id="name" placeholder="Enter your name" required="name"> 
 
</div> 
 
<div class="icon1"> 
 
<i class="fa fa-envelope" aria-hidden="true"></i> 
 
<input type="email" name="email" placeholder="Enter your email" required=""> 
 
</div> 
 
<div class="icon1"> 
 
<i class="fa fa-phone" aria-hidden="true"></i> \t 
 
<input type="tel" name="phone" placeholder="Phone number" required=""> 
 
</div> 
 
<div class="icon1"> 
 
<i class="fa fa-lock" aria-hidden="true"></i> 
 
<input type="text" name="age" placeholder="Age" required=""> 
 
</div> 
 
<div class="icon1"> 
 
<i class="fa fa-lock" aria-hidden="true"></i> 
 
<input type="text" name="talent" placeholder="Talent" required=""> 
 
</div> 
 
<div class="icon1"> 
 
<i class="fa fa-lock" aria-hidden="true"></i> 
 
<input type="text" name="university" placeholder="Universities" required=""> 
 
</div> 
 
<div class="bottom"> 
 
<input type="submit" value="Register"> 
 
</div> 
 
</form>

提交表单我只是让我的电子邮件中,当我有问题的PHP脚本,请帮助。

当我收到邮件时,我只收到标签而不是表格上填写的实际数据。

<?php 
$Name = $_POST['name']; 
$Email = $_POST['email']; 
$Phone = $_POST['phone']; 
$Age = $_POST['age']; 
$Talent = $_POST['talent']; 
$University = $_POST['university']; 

$to = "[email protected]"; 
$subject = "Registration"; 
$message = "Name: $name \n\n Email: $email \n\n Phone: $phone \n\n Age: $age 
\n\n Talent: $talent \n\n University: $university"; 
$from = "[email protected]"; 
$headers = "From:" . $from; 
mail($to,$subject,$message,$headers); 
echo "Mail Sent."; 
?> 
+0

我认为我们需要查看表单的html。你还应该更清楚地指出问题所在。 – Difster

+0

我已经更新了我的代码,看到我的html表格 –

+0

任何好的PHP编辑器甚至PHP服务器本身都应该告诉你至少你的主要问题在这里(你应该用[display_errors](http://php.net)运行脚本。 /manual/en/function.error-reporting.php)PHP设置或调试模式)。那么你会得到这样的错误:'注意:未定义的变量:名称'。 – xander

回答

1

PHP是如果你使用大写变量($名称)很敏感,但您使用smallcase($名) 尝试:

首先,你应该使用:

<input type="text" id="name" name="name" placeholder="Enter your name" required="name"> 

其次:

$Name = $_POST['name']; 
$Email = $_POST['email']; 
$Phone = $_POST['phone']; 
$Age = $_POST['age']; 
$Talent = $_POST['talent']; 
$University = $_POST['university']; 

$to = "[email protected]"; 
$subject = "Registration"; 
$message = "Name: $Name \n\n Email: $Email\n\n Phone: $Phone \n\n Age: $Age 
\n\n Talent: $Talent\n\n University: $University"; 
$from = "[email protected]"; 
$headers = "From:" . $from; 
mail($to,$subject,$message,$headers); 
echo "Mail Sent."; 
+0

我已更新我的帖子查看表单。 –

+0

我已经改变了如上所述,现在我甚至没有收到电子邮件。 –

1

这里有个问题。您实际上并未使用name="name"属性。

<input type="text" id="name" placeholder="Enter your name" required="name"> 

修改成:

<input type="text" id="name" name="name" placeholder="Enter your name" required="name"> 

我总是用它在我的表单输入两个idname的习惯。只有name属性被传递给表单操作。

另外,正如其他用户指出的那样,您必须具有一致的变量名称。 $Name$name等不同

+0

#Difster&#andreas karimi谢谢,它现在正在工作。再次感谢 :-) –