无法让我的 php 表单工作(无法发送电子邮件)


Can't get my php form working (cant send the email)

和我在一起,我对PHP真的很糟糕,不是我的领域。对不起,我可能会说任何愚蠢的事情

编辑:我尝试按照你们所说的方式回显变量,结果我无法从中获得任何价值。

编辑2:那些"必需的类"适用于我的jquery验证脚本。你们认为我也应该发布它吗?

好吧,我面临一个php联系表单问题。我对php也不太了解,所以这让事情变得更加困难。

好吧,我已经尝试了邮件测试.php以检查它是否是我的主机,但它工作正常。所以这是代码:

<form class="validate" method="post" action="send_form_email.php">
    <span class="fill">Todos os campos são obrigatórios.</span>
    <span><label>Nome:</label><input name="nome" type="text" class="required" /></span><br />
    <span><label>E-mail:</label><input name="mail" type="text" class="required email" /></span><br />
    <span><label>Empresa:</label><input name="empresa" type="text" class="required" /></span><br />
    <span><label>Telefone:</label><input style="width: 150px;" name="phone" type="text" class="required" /></span><br />                   
    <span><label>Mensagem:</label><textarea name="mensagem" cols="38" rows="8" class="required"></textarea></span><br />
    <span><input class="btn" type="submit" name="submit" value="Enviar" /></span>
</form>

这是我的 php 编码:

<?php
if(isset($_POST['submit'])) {
$to = "fernando_fleury@hotmail.com";
$subject = "Contato Website - Nicotec";
$name = $_POST['nome'];
$email = $_POST['mail'];
$empresa = $_POST['empresa'];
$phone = $_POST['phone'];
$message = $_POST['mensagem'];
$body = "De: $name_field'n E-Mail: $email'n Empresa: $empresa'n Telefone: $phone'n Mensagem:'n $message";
mail($to, $subject, $body);
}
header('Location: contato.html');
?>
也可以

实时检查:http://www.fernandofleury.com.br/preview/nicotec/contato.html

我在这里做错了什么?提前谢谢。

而不是

if(isset($_POST['submit']))检查以确保所有必填字段都按照if(isset($_POST['nome']) && isset($_POST['mail']) && isset($_POST['phone']) ....行设置

然后,如果失败,则回显出$to$subject$body。注释掉header,以便在测试时查看结果。

另外,试试这个:

if(isset($_POST['submit'])) 
{
    $to = "fernando_fleury@hotmail.com";
    $subject = "Contato Website - Nicotec";
    $name = $_POST['nome'];
    $email = $_POST['mail'];
    $empresa = $_POST['empresa'];
    $phone = $_POST['phone'];
    $message = $_POST['mensagem'];
    $body = "De: $name_field'n E-Mail: $email'n Empresa: $empresa'n Telefone: $phone'n Mensagem:'n $message";
    mail($to, $subject, $body);
    header('Location: contato.html');
}
else
{
    echo "Ruh ohes! Something wasn't set!";
}

编辑:要将 VaR 回显到屏幕使用(在$to此代码的示例中:

echo $to;

编辑 2:

我看了一下你的页面,你使用javascript来确保填写所有字段。因此,问题几乎肯定出在这一行上:

if(isset($_POST['submit']))

你能把它改成:

if(!empty($_POST['nome']) && !empty($_POST['mail']) && !empty($_POST['empresa']) && !empty($_POST['phone']) && !empty($_POST['mensagem']))

请为我?也许$_POST['Submit']没有正确发送。

问题尚不清楚。"它不起作用"是一个非常广泛的解释:)因此,为了获得适当的帮助,请描述以下内容:

  • 你采取什么行动?
  • 你会得到什么结果?
  • 预期结果如何?

另外:尝试将过程切成碎片:

  • 邮件工作正常吗?
  • 只是重定向吗?
  • 两者兼而有之吗?
  • 等。。。

不是解决方案,而是调试提示:
尝试:

 print_r($_POST);

看看结果是什么。它可能会告诉你更多。

测试时,您还应该将以下内容添加到 php 文件的顶部以查看错误:

error_reporting(E_ALL);
ini_set('display_errors','On');

并在所有输入中添加:

value=""

默认情况下发送一个空字符串。要查看即将发布的内容,只需添加到您的send_form_email.php

var_dump($_POST)

因为你不需要写if(isset($_POST['nome'])&& isset($_POST['mail'])等。 有时提交输入名称由 PHP 更改,因此您可以使用 var_dump 找到正确的名称。