【问题标题】:submitted my php form, but none of the values were sent提交了我的 php 表单,但没有发送任何值
【发布时间】:2012-08-10 17:22:35
【问题描述】:

由于某种原因,这些选项没有显示在我的电子邮件中。我可以让电子邮件发送就好了。我可以看到正文及其所有 cmets,但没有看到用户所做的任何条目。我知道我做错了什么,但我无法确定是什么。

另外,如果它看起来很糟糕,请随意嘲笑我。 :)

$ToEmail = 'dmandrade1978@gmail.com'; 
$EmailSubject = 'Message from web page!!'; 

$name = $_POST['name'];
$email = $_POST['email'];
$comment = $_POST['comment'];
$urphone = $_POST['urphone'];
$event = $_POST['event'];
$date = $_POST['date'];
$mail = $_POST['mail'];
$phone = $_POST['phone'];
$comment = $_POST['comment'];
$hearaboutus = $_POST['hearaboutus'];

$body = <<<EMAIL
Email: $email <br />
Name: $name <br />
Comment: $comment <br />
Phone: $urphone <br />
Date: $urdate <br />
Comment: $comment <br />
How did you hear?: $hearaboutus <br />
Mail optiom: $mail <br />
EMAIL;

$header = "Content-type: text/html\r\n";
mail("$ToEmail", "$EmailSubject", "$body", "$header");
echo ("Message Sent!");

?>

<td class = "form">
<form action="?" method="get" enctype="text/plain">
<p class = "form">Name:<br />
<input type="text" name="name" id="name" /></p>
<p class = "form">E-mail:<br />
<input type="text" name="email" id="email" /></p>
<p class = "form">Phone #:<br />
<input type="text" name="urphone" id="urphone" /></p>
<p class = "form">Event type:<br />
<input type="text" name="event" id="event" /></p>
<p class = "form">Date of event:<br />
<input type="text" name="date" id="date" /></p>
<p class = "form" >Prefered method of contact:<br />
<span class = "contact">
<input type="radio" name="phone" id="phone" /> Phone<br />
<input type="radio" name="mail" id="mail" /> E-mail<br />
</span></p>
<p class = "form">How did you hear about us?:<br />
<select name="hearaboutus" id="hearaboutus" />
<option value="internet">Internet</option>
<option value="word of mouth">Friend/Family</option>
<option value="magazine">Magazine</option>
<option value="other">Other</option>
</select></p>
<p class = "form">Message, questions, or availability:<br />
<textarea rows="10" cols="30" name="comment" id="comment">
</textarea></p>
<input type="submit" value="Send email to us" id="submit">
<input type="reset" value="Reset and start over">
</form>

【问题讨论】:

  • 您检查了您的外发邮件日志吗?也就是说,我知道您检查了您的电子邮件,但在您的邮件服务器上,它是否表明已发送邮件?不确定您使用的是什么系统,但大多数系统都有邮件日志。
  • 您的表单具有属性method = "POST"?
  • 您确定您使用的是 POST 而不是 GET 吗?尝试var_dump($_POST)
  • 请出示发送表格 - 可能就像 POST/GET 混淆一样简单。在任何情况下,您都应该使用 REQUEST['name'] 而不是 POST|GET['name']
  • 而且你不需要引用变量。 mail($ToEmail, $EmailSubject, $body, $header);

标签: php forms email


【解决方案1】:

更改method="get"

method="post"

并删除 enctype 。在这种情况下不需要。

另外,为什么你的操作中有??您可以将操作保留为空白,因为它正在发布到同一页面。

为了让事情变得更简单,复制粘贴下面的代码并再次运行文件

if(isset($_POST['submit']))
{
$ToEmail = 'dmandrade1978@gmail.com'; 
$EmailSubject = 'Message from web page!!'; 

$name = $_POST['name'];
$email = $_POST['email'];
$comment = $_POST['comment'];
$urphone = $_POST['urphone'];
$event = $_POST['event'];
$date = $_POST['date'];
$mail = $_POST['mail'];
$phone = $_POST['phone'];
$comment = $_POST['comment'];
$hearaboutus = $_POST['hearaboutus'];

$body = <<<EMAIL
Email: $email <br />
Name: $name <br />
Comment: $comment <br />
Phone: $urphone <br />
Date: $urdate <br />
Comment: $comment <br />
How did you hear?: $hearaboutus <br />
Mail optiom: $mail <br />
EMAIL;

$header = "Content-type: text/html\r\n";
mail("$ToEmail", "$EmailSubject", "$body", "$header");
echo ("Message Sent!");
}
?>

<td class = "form">
<form action="" method="post">
<p class = "form">Name:<br />
<input type="text" name="name" id="name" /></p>
<p class = "form">E-mail:<br />
<input type="text" name="email" id="email" /></p>
<p class = "form">Phone #:<br />
<input type="text" name="urphone" id="urphone" /></p>
<p class = "form">Event type:<br />
<input type="text" name="event" id="event" /></p>
<p class = "form">Date of event:<br />
<input type="text" name="date" id="date" /></p>
<p class = "form" >Prefered method of contact:<br />
<span class = "contact">
<input type="radio" name="phone" id="phone" /> Phone<br />
<input type="radio" name="mail" id="mail" /> E-mail<br />
</span></p>
<p class = "form">How did you hear about us?:<br />
<select name="hearaboutus" id="hearaboutus" />
<option value="internet">Internet</option>
<option value="word of mouth">Friend/Family</option>
<option value="magazine">Magazine</option>
<option value="other">Other</option>
</select></p>
<p class = "form">Message, questions, or availability:<br />
<textarea rows="10" cols="30" name="comment" id="comment">
</textarea></p>
<input type="submit" name="submit" value="Send email to us" id="submit">
<input type="reset" value="Reset and start over">
</form>

【讨论】:

  • 我实际上是在看一个在线教程,有人提到一个?会使文档本身引用(是的,不知道)-我最初在那里有其他东西。但我想知道我是否改变了这个问题只会使问题更加复杂。哦,那只说 GET 因为我更改了它以测试另一个用户提到的 get。是的,我确实更改了顶部的变量以获得与 post 相同的内容,但没有运气。我将删除 enctype
  • 我更新了我的帖子。请注意,我添加了两件事 - 首先是isset($_POST['submit']),还在提交按钮中添加了name="submit"。现在,无论何时点击 Send email to us,您都会在其中获得所有详细信息。
  • 阿司匹林,我试过你上面提交的代码。一样。奇怪的。我不明白。变量似乎与 HTML 匹配。我删除了所有添加的垃圾。然而,仍然......获取所有的html......只是不是变量。通过名称:然后名称旁边没有任何内容。绝对奇怪。我在其他任何地方都看不到我出错了。
  • 第一次,即使没有点击提交按钮,您的电子邮件也会被发送,因为mail() 在页面加载时运行。现在添加isset($_POST['submit']) 后,它确保仅在单击提交按钮后才发送电子邮件。它现在应该可以工作了
  • 阿司匹林,我不想成为那些人中的一员,但我不喜欢。不知何故,我的css stlying了。它从未提交过。相信我,我知道你在说什么关于在页面加载时发送电子邮件......不知何故我侥幸逃脱了。在我点击提交之前它不会发送电子邮件。我知道,这没有意义。通过我添加您创建的信息,什么都没有发生。我继续寻找我搞砸的那一段代码哈哈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-17
  • 2018-07-09
  • 2021-08-04
  • 2017-01-25
  • 2013-12-01
相关资源
最近更新 更多