2015-09-11 28 views
0

中的反馈我一直在php中做这个注册项目,但是无论何时我在本地主机上访问它(使用wampserver),它给我这个错误警告:邮件():无法连接到邮件服务器//注意:未定义的变量:

  1. 在注册(顶视图)的主页: 错误:注意:未定义指数:FNAME在 enter image description here

  2. 在注册(BUTTOM视图)的主页 ERROR:注意:未定义的变量:警告:电子邮件():在发送电子邮件(不进入,由于错误) 差错反馈 enter image description here

  3. 无法连接在"到邮件服务器本地主机端口" 25,验证您的" SMTP "和" SMTP_PORT "设置在php.ini或使用的ini_set()在 enter image description here


我真的不知道什么时候出错,因为这是我第一次尝试编码一个发送电子邮件的PHP文件。我希望有人能帮助我在这里

---这里是我使用的代码(我根据它的教程,我看到)

<?php 

$to = "[email protected]"; 
$subject = 'SmoothTeamPH SignUp Registration'; 

$fname = $_POST['fname']; 
$lname = $_POST['lname']; 
$email = $_POST['email']; 
$pnum = $_POST['pnum']; 
$shippingAdd = $_POST['shippingAdd']; 

$body = <<<Email 

Hi! 

Smooth Team PH New Registration 

First Name: $fname 
Last Name: $lname 
Email Address: $email 
Phone Number: $pnum 
Shipping Address: $shippingAdd 

Thanks, 
$lname, $fname 

Email; 

$header = "From: $email"; 

if($_POST){ 
    if($lname == '' || $fname == '' || $email == '' || $pnum == '' || $shippingAdd == ''){ 
     $feedback = 'Kindly fill out all the fields'; 
    }else{ 
     mail($to, $subject, $body, $header); 
     $feedback = "Thank you for providing your information. We will get back to you shortly"; 
    } 

} 
?> 


<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8" /> 
<title>Smooth Team PH Inc</title> 
<link href="style.css" rel="stylesheet" /> 
</head> 
<body> 
<div id="container"> 
    <header id="header"> 
     <div id="menu" class="menu"> 
      <ul> 
       <li><a href="#" target="_blank"> HOME </a></li> 
       <li><a href="#" target="_blank"> SIGN UP </a></li> 
       <li><a href="#" target="_blank"> ABOUT US </a></li> 
       <li><a href="#" target="_blank"> CONTACT </a></li> 
      </ul> 
     </div> 
</header> 


<section id="content"> 
    <h2>Sign Up</h2> 
      <div id="signup"> 
      <form action="?" method="post"> 

       <ul> 
        <li> 
         <label for="fname">First Name : </label> 
         <input type="text" name="fname" id="fname" /> 
        </li> 
        <li> 
         <label for="lname">Last Name : </label> 
         <input type="text" name="lname" id="lname" /> 
        </li> 
        <li> 
         <label for="email">Email : </label> 
         <input type="text" name="email" id="email" /> 
        </li> 
        <li> 
         <label for="pnum"> Phone Number : </label> 
         <input type="text" name="pnum" id="pnum" /> 
        </li> 
        <li> 
         <label for="shippingAdd">Shipping Address : </label> 
         <textarea id="shippingAdd" name="shippingAdd" cols="42" rows="9"></textarea> 
        </li> 
        <li> 
         <input type="submit" value="Submit"> 
        </li> 
       </ul> 

       <p id="feedback"> <?php echo $feedback; ?> </p> <!-- will be transfered to 2nd page later --> 
      </form> 
      </div> 
</section> 


<footer id="footer"> 
    <div id="fmenu" class="fmenu"> 
     <p>©2015 smoothteamphinc | Design & Development by Mariel Temblor</p> 
</footer> 
    </div> 
</div> 
</body> 
</html> 
+0

您需要在本地服务器的'php.ini'中配置SMTP服务器以发送电子邮件。 – ojovirtual

+0

你忘了'$ feedback = $ _POST ['feedback'];'你应该阅读关于XSS注入和输入验证和输入消毒,代码对我来说看起来并不安全。 – DanFromGermany

+0

@ojovirtual,我该怎么做? – MisaChan

回答

0

我qyestions,这里是我做过什么

错误1:而不是做

$fname = $_POST['fname']; 
$lname = $_POST['lname']; 
$email = $_POST['email']; 
$pnum = $_POST['pnum']; 
$shippingAdd = $_POST['shippingAdd']; 

我做

$fname = isset($_POST['fname']) ? $_POST['fname'] : ''; 
$lname = isset($_POST['lname']) ? $_POST['lname'] : ''; 
$email = isset($_POST['email']) ? $_POST['email'] : ''; 
$pnum = isset($_POST['pnum']) ? $_POST['pnum'] : ''; 
$shippingAdd = isset($_POST['shippingAdd']) ? $_POST['shippingAdd'] : ''; 

错误2:我在if状态之外添加了另一个变量声明。并将其添加到$ he​​ader声明上方。并在其中分配一个空值。

$feedback = ""; 
$header = "From: $email"; 

错误3:

我们真的想不出来解决这个,因为它是电子邮件的最好方式,我真的不知道要放什么东西在SMTP,所以我的朋友让我借用他的域名一秒,以便我至少可以检查代码是否正常工作。是的,它的确如此。我已收到我的$ to代码的电子邮件。

我希望这可以对遇到同样事情的其他人有所帮助。特别感谢我的朋友:)

相关问题