【问题标题】:w3 schools form tutorial doesnt send emailw3schools 表单教程不发送电子邮件
【发布时间】:2014-07-31 17:14:23
【问题描述】:

我正在尝试为我的网站设置一个表单,该表单全部位于 1 个 php 页面 (contact.php) 上。我已经阅读了 w3schools 上的教程,并且表单验证工作完美。但是,它不会将表单信息发送到任何地方。我研究了其他表单文章和教程,虽然我可以将一些表单发送到电子邮件,但它们不验证,反之亦然。我尝试过结合这些信息,但它不起作用。

有人可以帮我获取此代码以将表单数据发送到电子邮件地址吗?

谢谢。

<!DOCTYPE HTML> 
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body> 

<?php
// define variables and set to empty values
$nameErr = $orgErr = $emailErr = $websiteErr = "";
$name = $org = $email = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["name"])) {
     $nameErr = "Name is required";
   } else {
     $name = test_input($_POST["name"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
       $nameErr = "Only letters and white space allowed"; 
     }
   }

   if (empty($_POST["org"])) {
     $orgErr = "Organization is required";
   } else {
     $org = test_input($_POST["org"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[a-zA-Z ]*$/",$org)) {
       $orgErr = "Only letters and white space allowed"; 
     }
   }

   if (empty($_POST["email"])) {
     $emailErr = "Email is required";
   } else {
     $email = test_input($_POST["email"]);
     // check if e-mail address syntax is valid
     if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
       $emailErr = "Invalid email format";
     }
   }

   if (empty($_POST["website"])) {
     $website = "";
   } else {
     $website = test_input($_POST["website"]);
   }

   if (empty($_POST["comment"])) {
     $comment = "";
   } else {
     $comment = test_input($_POST["comment"]);
   }

}
?>

<h2>PHP Form Validation Example</h2>
<p><span class="error">* required field.</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
   Name*: <input type="text" name="name" value="<?php echo $name;?>">
   <span class="error"><?php echo $nameErr;?></span>
   <br><br>
   Organization*: <input type="text" name="org" value="<?php echo $org;?>">
   <span class="error"><?php echo $orgErr;?></span>
   <br><br>
   E-mail*: <input type="text" name="email" value="<?php echo $email;?>">
   <span class="error"><?php echo $emailErr;?></span>
   <br><br>
   Website: <input type="text" name="website" value="<?php echo $website;?>">
   <span class="error"><?php echo $websiteErr;?></span>
   <br><br>
   Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
   <br><br>
   <input type="submit" name="submit" value="Submit"> 
</form>
</body>
</html>

【问题讨论】:

  • 该代码中没有任何地方可以发送电子邮件。这就是它不起作用的原因。
  • 在发布之前应该阅读并尝试理解代码。
  • 我更震惊的是这个问题没有任何关闭投票..
  • 如果我不清楚,我很抱歉。我意识到没有邮件功能。当我添加它时,它会邮寄表格但不验证它。我删除了我所拥有的,只显示了完成的教程,我希望得到一个答案,说明在哪里放置它以使表单功能正常。

标签: php html forms email


【解决方案1】:

【讨论】:

  • 意见:您不应该使用或链接到w3schools。它不是可靠的信息来源,我们不鼓励使用它。
  • 1) 他的代码来自那里,所以我参考了它。 2) 哪方面不靠谱?
  • 另外,请不要发布 cmets 或仅发布链接作为答案。
  • 这既不是评论也不是链接,答案就在那里。他缺少邮件功能。
  • @johnconde 供参考,w3fools 返回默认页面,应该寻找新的来源来诽谤这样一个完美的网站。你知道,有注入漏洞和过时教程的那个;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-09
  • 1970-01-01
  • 2019-02-17
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多